@flatbiz/antd 5.2.7 → 5.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ import { a as _slicedToArray, c as _toConsumableArray } from './_rollupPluginBab
4
4
  import { useState, useMemo } from 'react';
5
5
  import { useMemoizedFn } from 'ahooks';
6
6
  import { Button, Tabs, Spin, message } from 'antd';
7
- import { dialogPreviewImage } from '@flatbiz/antd';
7
+ import { d as dialogPreviewImage } from './preview-image-BGEPfC0y.js';
8
8
  import { U as UploadWrapper } from './upload-wrapper-DmZglNR4.js';
9
9
  import _DeleteOutlined from '@ant-design/icons/es/icons/DeleteOutlined.js';
10
10
  import _EyeOutlined from '@ant-design/icons/es/icons/EyeOutlined.js';
@@ -294,4 +294,4 @@ var UploadMultiType = function UploadMultiType(props) {
294
294
  };
295
295
 
296
296
  export { UploadMultiType as U };
297
- //# sourceMappingURL=content-C6Qc7y_K.js.map
297
+ //# sourceMappingURL=content-CXmBn9B0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-CXmBn9B0.js","sources":["@flatbiz/antd/src/upload-multi-type/file-view.tsx","@flatbiz/antd/src/upload-multi-type/content.tsx"],"sourcesContent":["import { Button } from 'antd';\nimport { DeleteOutlined, EyeOutlined } from '@ant-design/icons';\nimport type { UploadMultiTypeFileItem } from './type.js';\n\nconst IMAGE_EXTENSIONS = [\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'webp',\n 'bmp',\n 'svg',\n 'heic',\n 'heif',\n];\n\nfunction isImageFile(name?: string, url?: string): boolean {\n const str = name || url || '';\n const ext = str.slice(str.lastIndexOf('.') + 1).toLowerCase();\n return IMAGE_EXTENSIONS.includes(ext);\n}\n\nexport const FileListView = (props: {\n uploadList: UploadMultiTypeFileItem[];\n onPreview: (url: string) => void;\n onRemove: (index: number) => void;\n disabled?: boolean;\n}) => {\n const { uploadList, onPreview, onRemove } = props;\n\n if (!props.uploadList?.length) {\n return null;\n }\n return (\n <ul className=\"upload-multi-type-file-list\">\n {uploadList.map((item, index) => {\n const isImage = isImageFile(item.name, item.url);\n return (\n <li\n key={`${item.url}-${index}`}\n className=\"upload-multi-type-file-item\"\n >\n <span className=\"upload-multi-type-file-name\" title={item.name}>\n {isImage ? (\n <span\n className=\"upload-multi-type-file-name-image\"\n onClick={() => onPreview(item.url)}\n >\n {item.name}\n </span>\n ) : (\n <span>{item.name}</span>\n )}\n </span>\n <span className=\"upload-multi-type-file-actions\">\n {isImage ? (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<EyeOutlined />}\n className=\"upload-multi-type-action-btn\"\n onClick={() => onPreview(item.url)}\n aria-label=\"预览\"\n />\n ) : null}\n <Button\n type=\"text\"\n size=\"small\"\n hidden={props.disabled}\n icon={<DeleteOutlined />}\n className=\"upload-multi-type-action-btn upload-multi-type-action-btn-danger\"\n onClick={() => onRemove(index)}\n aria-label=\"删除\"\n />\n </span>\n </li>\n );\n })}\n </ul>\n );\n};\n","import { useMemo, useState } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport { message, Spin, Tabs } from 'antd';\nimport { dialogPreviewImage } from '../dialog-preview-image/preview-image.jsx';\nimport { UploadWrapper } from '../upload-wrapper/upload-wrapper.jsx';\nimport { FileListView } from './file-view.jsx';\nimport type { UploadMultiTypeFileItem } from './type.js';\nimport './style.less';\n\nfunction getImageFileFromPaste(e: React.ClipboardEvent): File | null {\n const items = e.clipboardData?.items;\n if (!items) return null;\n for (let i = 0; i < items.length; i++) {\n if (items[i].type.indexOf('image') !== -1) {\n return items[i].getAsFile();\n }\n }\n return null;\n}\n\ntype UploadMultiTypeProps = {\n value?: string[] | UploadMultiTypeFileItem[];\n onChange?: (v: any) => void;\n /** 上传文件 */\n onUploadFile: (file: File) => Promise<UploadMultiTypeFileItem>;\n /** 最大上传数量 */\n maxCount?: number;\n /** 上传文件类型,例如:image/*, video/*, audio/* */\n accept?: string;\n /** 只上传图片,默认:false;设置accept时,此配置无效 */\n onlyUploadImage?: boolean;\n\n disabled?: boolean;\n};\n\n/**\n * 上传组件,同时支持多种上传方式,支持【点击&拖拽上传】、【粘贴上传】\n * ```\n * @example\n * const onUploadFile = useMemoizedFn(async (file: File) => {\n * const formData = new FormData();\n * formData.append('file', file);\n * const respData = await serviceHandle.upload<{\n * url: string;\n * name?: string;\n * }>('https://pubtest.hnapay.com/api/file/upload', formData);\n * return respData;\n * });\n *\n * <UploadMultiType onUploadFile={onUploadFile} maxCount={1} />\n * ```\n */\nexport const UploadMultiType = (props: UploadMultiTypeProps) => {\n const { value, onChange } = props;\n const [showPasteSuccess, setShowPasteSuccess] = useState(false);\n const [loading, setLoading] = useState(false);\n const maxCount = props.maxCount;\n const [uploadList, setUploadList] = useState<UploadMultiTypeFileItem[]>(() =>\n Array.isArray(value) && value.length > 0\n ? value.map((item: any) => ({\n name: item?.name ?? item?.url?.split?.('/').pop(),\n url: item?.url ?? '',\n }))\n : []\n );\n\n const onChangeHandler = useMemoizedFn(async (data: any) => {\n const files = data as File[];\n if (!files?.length) return;\n setLoading(true);\n try {\n const respData = await props.onUploadFile?.(files[0]);\n const fileName = respData?.name || respData?.url.split('/').pop();\n const newItem = { name: fileName, url: respData?.url };\n if (maxCount && maxCount == 1) {\n setUploadList([newItem]);\n onChange?.([newItem]);\n } else {\n setUploadList((prev) => {\n let prevListNew = prev;\n if (maxCount && prevListNew.length >= maxCount) {\n prevListNew = prevListNew.slice(0, maxCount - 1);\n }\n const mergedList = [...prevListNew, newItem];\n onChange?.(mergedList);\n return mergedList;\n });\n }\n } catch (error) {\n void message.error(error?.['message'] || '上传操作失败');\n throw error;\n } finally {\n setLoading(false);\n }\n });\n\n const onPaste = useMemoizedFn(async (e: React.ClipboardEvent) => {\n e.preventDefault();\n const file = getImageFileFromPaste(e);\n if (!file) return;\n await onChangeHandler?.([file]);\n setShowPasteSuccess(true);\n setTimeout(() => {\n setShowPasteSuccess(false);\n }, 1500);\n });\n const onPreview = useMemoizedFn((url: string) => {\n dialogPreviewImage.show({ imageUrl: url });\n });\n\n const onRemove = useMemoizedFn((index: number) => {\n setUploadList((prev) => {\n const next = prev.filter((_, i) => i !== index);\n onChange?.(next);\n return next;\n });\n });\n\n const accept = useMemo(() => {\n if (props.accept) {\n return props.accept;\n }\n return props.onlyUploadImage ? 'image/*' : undefined;\n }, [props.accept, props.onlyUploadImage]);\n\n if (props.disabled) {\n if (!uploadList?.length) {\n return null;\n }\n return (\n <div className=\"v-upload-multi-type-disabled\">\n <FileListView\n uploadList={uploadList}\n onPreview={onPreview}\n onRemove={onRemove}\n disabled={props.disabled}\n />\n </div>\n );\n }\n\n return (\n <div className={'v-upload-multi-type'}>\n <div className=\"v-upload-multi-type-inner\">\n <Tabs\n destroyOnHidden={false}\n items={[\n {\n key: 'dragger',\n label: '点击&拖拽上传',\n forceRender: true,\n children: (\n <Spin spinning={loading}>\n <UploadWrapper\n name=\"file\"\n accept={accept}\n maxCount={maxCount}\n autoSubmit={false}\n onChange={onChangeHandler}\n isDragger\n showUploadList={false}\n />\n </Spin>\n ),\n },\n {\n key: 'paste',\n label: '粘贴上传',\n forceRender: true,\n children: (\n <Spin spinning={loading}>\n <div\n className=\"upload-image-paste-zone\"\n onPaste={onPaste}\n tabIndex={0}\n role=\"textbox\"\n aria-label=\"粘贴图片区域\"\n >\n {showPasteSuccess ? (\n <span className=\"upload-image-paste-tip success\">\n 已粘贴上传图片成功\n </span>\n ) : (\n <span className=\"upload-image-paste-tip\">\n 在此区域点击后使用 Ctrl+V / Cmd+V 粘贴图片\n </span>\n )}\n </div>\n </Spin>\n ),\n },\n ]}\n />\n {uploadList.length > 0 ? (\n <FileListView\n uploadList={uploadList}\n onPreview={onPreview}\n onRemove={onRemove}\n disabled={props.disabled}\n />\n ) : null}\n </div>\n </div>\n );\n};\n"],"names":["IMAGE_EXTENSIONS","isImageFile","name","url","str","ext","slice","lastIndexOf","toLowerCase","includes","FileListView","props","_props$uploadList","uploadList","onPreview","onRemove","length","_jsx","className","children","map","item","index","isImage","_jsxs","title","onClick","Button","type","size","icon","_EyeOutlined","hidden","disabled","_DeleteOutlined","concat","getImageFileFromPaste","e","_e$clipboardData","items","clipboardData","i","indexOf","getAsFile","UploadMultiType","value","onChange","_useState","useState","_useState2","_slicedToArray","showPasteSuccess","setShowPasteSuccess","_useState3","_useState4","loading","setLoading","maxCount","_useState5","Array","isArray","_item$name","_item$url","_item$url$split","_item$url2","split","call","pop","_useState6","setUploadList","onChangeHandler","useMemoizedFn","data","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","$boundEx","bind","files","_props$onUploadFile","respData","fileName","newItem","$Try_1_Post","$Try_1_Catch","error","message","resolve","onUploadFile","then","$await_2","prev","prevListNew","mergedList","_toConsumableArray","onPaste","file","preventDefault","$await_3","setTimeout","dialogPreviewImage","show","imageUrl","next","filter","_","accept","useMemo","onlyUploadImage","undefined","Tabs","destroyOnHidden","key","label","forceRender","Spin","spinning","UploadWrapper","autoSubmit","isDragger","showUploadList","tabIndex","role"],"mappings":"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"}
@@ -2,13 +2,66 @@
2
2
 
3
3
  import { _ as _objectWithoutProperties, a as _slicedToArray, b as _objectSpread2 } from './_rollupPluginBabelHelpers-BspM60Sw.js';
4
4
  import _CloseCircleFilled from '@ant-design/icons/es/icons/CloseCircleFilled.js';
5
- import { useRef, useState, useEffect, useMemo } from 'react';
6
- import { Button, message, Spin } from 'antd';
7
- import { getUuid, openNewWindow, loadScripts, loadStyles } from '@flatbiz/utils';
5
+ import { useRef, useState, useEffect, useCallback, useMemo } from 'react';
6
+ import { Button, InputNumber, message, Spin } from 'antd';
7
+ import { openNewWindow, getUuid, loadScripts, loadStyles } from '@flatbiz/utils';
8
8
  import { classNames } from '@dimjs/utils/class-names/class-names';
9
- import { useSize } from 'ahooks';
10
- import { getCodeString } from 'rehype-rewrite';
9
+ import { useMemoizedFn, useSize } from 'ahooks';
10
+ import { C as CardLayout } from './card-layout-P-Qb5pCT.js';
11
+ import { C as CodeRender } from './code-Dbu2QlhZ.js';
12
+ import { d as dialogModal } from './dialog-modal-CGMNBSgq.js';
11
13
  import { jsx, jsxs } from 'react/jsx-runtime';
14
+ import { getCodeString } from 'rehype-rewrite';
15
+ import { isObject } from '@dimjs/lang/is-object';
16
+ import { isString } from '@dimjs/lang/is-string';
17
+ import { A as AlertWrapper } from './alert-DGRFbqqK.js';
18
+ import { E as EasyForm } from './form-ByFljQr9.js';
19
+ import { F as FormItemHidden } from './form-item-hidden-BtQvJEx7.js';
20
+ import { F as FormItemWrapper } from './form-item-wrapper-Ci7-5IKi.js';
21
+ import { G as Gap } from './gap-5v_ndf2v.js';
22
+ import { U as UploadMultiType } from './content-CXmBn9B0.js';
23
+
24
+ var MermaidViewBtn = function MermaidViewBtn() {
25
+ var handeClick = function handeClick() {
26
+ dialogModal.open({
27
+ title: 'Mermaid图形示例',
28
+ content: function content() {
29
+ return /*#__PURE__*/jsxs("div", {
30
+ children: [/*#__PURE__*/jsx(CardLayout, {
31
+ title: '示例',
32
+ subTitle: '在Markdown中使用Mermaid图形',
33
+ layoutType: "tight",
34
+ children: /*#__PURE__*/jsx(CodeRender, {
35
+ code: "```mermaid\nsequenceDiagram\n native->>haipay\u670D\u52A1\u7AEF:\u83B7\u53D6accessToken\n haipay\u670D\u52A1\u7AEF->>tc\u670D\u52A1\u7AEF: \u8C03\u7528tc\u7684\u63A5\u53E3\u83B7\u53D6accessToken\n tc\u670D\u52A1\u7AEF->>haipay\u670D\u52A1\u7AEF: \u8FD4\u56DEaccessToken\n haipay\u670D\u52A1\u7AEF-->>native: \u5C06accessToken\u8FD4\u56DEnative\n native->>tch5: \u5C06accessToken\u8FD4\u56DE\u7ED9tch5\uFF0C\u8FDB\u884C\u767B\u5F55"
36
+ })
37
+ }), /*#__PURE__*/jsx(Button, {
38
+ block: true,
39
+ type: "primary",
40
+ ghost: true,
41
+ style: {
42
+ marginTop: 20
43
+ },
44
+ onClick: function onClick() {
45
+ openNewWindow('https://docs.min2k.com/zh/mermaid/syntax/pie.html');
46
+ },
47
+ children: "\u67E5\u770B\u66F4\u591A\u793A\u4F8B"
48
+ })]
49
+ });
50
+ },
51
+ okHidden: true,
52
+ cancelHidden: true
53
+ });
54
+ };
55
+ return /*#__PURE__*/jsx(Button, {
56
+ type: "default",
57
+ size: "small",
58
+ style: {
59
+ fontSize: 12
60
+ },
61
+ onClick: handeClick,
62
+ children: "\u652F\u6301Mermaid\u56FE\u5F62"
63
+ }, "imageUpload");
64
+ };
12
65
 
13
66
  var _excluded$1 = ["children", "className"];
14
67
  var PluginMermaidCode = function PluginMermaidCode(_ref) {
@@ -122,15 +175,163 @@ var PluginMermaidCode = function PluginMermaidCode(_ref) {
122
175
  });
123
176
  };
124
177
 
125
- var _excluded = ["value", "onChange", "onUploadImage", "readonly", "isDarkMode", "className", "style", "readonlyHeightAuto", "height", "hideBorder"];
126
- // import MDEditor from '@uiw/react-md-editor';
178
+ function getImageDimensions(url) {
179
+ return new Promise(function (resolve, reject) {
180
+ var img = new Image();
181
+ img.onload = function () {
182
+ resolve({
183
+ width: img.naturalWidth,
184
+ height: img.naturalHeight
185
+ });
186
+ };
187
+ img.onerror = function () {
188
+ reject(new Error('图片加载失败'));
189
+ };
190
+ img.src = url;
191
+ });
192
+ }
193
+ var UploadImageContent = function UploadImageContent(props) {
194
+ var onValuesChange = useCallback(function (changedFields) {
195
+ return new Promise(function ($return, $error) {
196
+ if (changedFields.imageUrls) {
197
+ var imageUrls = changedFields.imageUrls;
198
+ if (!(imageUrls !== null && imageUrls !== void 0 && imageUrls.length)) return $return();
199
+ var imageUrl = isString(imageUrls[0]) ? imageUrls[0] : imageUrls[0].url;
200
+ getImageDimensions(imageUrl).then(function (_ref) {
201
+ var width = _ref.width,
202
+ height = _ref.height;
203
+ props.form.setFieldsValue({
204
+ width: width,
205
+ height: height
206
+ });
207
+ }).catch(function () {});
208
+ }
209
+ return $return();
210
+ });
211
+ }, [props.form]);
212
+ var onUploadFile = useMemoizedFn(function (file) {
213
+ return new Promise(function ($return, $error) {
214
+ var _props$onUploadImage, formData, respData;
215
+ formData = new FormData();
216
+ formData.append('file', file);
217
+ return Promise.resolve((_props$onUploadImage = props.onUploadImage) === null || _props$onUploadImage === void 0 ? void 0 : _props$onUploadImage.call(props, file)).then(function ($await_1) {
218
+ try {
219
+ respData = $await_1;
220
+ return $return(respData);
221
+ } catch ($boundEx) {
222
+ return $error($boundEx);
223
+ }
224
+ }, $error);
225
+ });
226
+ });
227
+ return /*#__PURE__*/jsxs(EasyForm, {
228
+ form: props.form,
229
+ onValuesChange: onValuesChange,
230
+ initialValues: {
231
+ file: [{
232
+ url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',
233
+ name: 'xxx1.png'
234
+ }, {
235
+ url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',
236
+ name: 'xxx2.png'
237
+ }]
238
+ },
239
+ children: [/*#__PURE__*/jsx(FormItemHidden, {
240
+ name: "height"
241
+ }), /*#__PURE__*/jsx(FormItemWrapper, {
242
+ name: "imageUrls",
243
+ label: "\u56FE\u7247",
244
+ rules: [{
245
+ required: true,
246
+ message: '请选择或粘贴图片'
247
+ }],
248
+ noStyle: true,
249
+ children: /*#__PURE__*/jsx(UploadMultiType, {
250
+ onUploadFile: onUploadFile,
251
+ maxCount: 1
252
+ })
253
+ }), /*#__PURE__*/jsx(Gap, {
254
+ height: 12
255
+ }), /*#__PURE__*/jsx(FormItemWrapper, {
256
+ name: "width",
257
+ label: "\u5BBD\u5EA6",
258
+ children: /*#__PURE__*/jsx(InputNumber, {
259
+ placeholder: "\u8BF7\u8F93\u5165\u5BBD\u5EA6",
260
+ style: {
261
+ width: '200px'
262
+ },
263
+ addonAfter: "px"
264
+ })
265
+ }), /*#__PURE__*/jsx(AlertWrapper, {
266
+ size: "small",
267
+ description: "\u53EF\u4FEE\u6539\u5BBD\u5EA6\u8FDB\u884C\u7B49\u6BD4\u7F29\u653E\u663E\u793A"
268
+ })]
269
+ });
270
+ };
127
271
 
128
- /**
129
- * ```
130
- * 使用:@uiw/react-md-editor 组件
131
- * 文档:https://www.npmjs.com/package/@uiw/react-md-editor
132
- * ```
133
- */
272
+ var UploadImageBtn = function UploadImageBtn(props) {
273
+ var handleImageClick = function handleImageClick() {
274
+ dialogModal.open({
275
+ title: '上传图片',
276
+ content: function content(form) {
277
+ return /*#__PURE__*/jsx(UploadImageContent, {
278
+ form: form,
279
+ onUploadImage: props.onUploadImage
280
+ });
281
+ },
282
+ okText: '确定',
283
+ onOk: function onOk(form) {
284
+ return new Promise(function ($return, $error) {
285
+ var values, imageUrls, imageItem, _props$onUploadResult, _props$onUploadResult2, name;
286
+ return Promise.resolve(form.validateFields()).then(function ($await_2) {
287
+ try {
288
+ values = $await_2;
289
+ try {
290
+ imageUrls = values.imageUrls;
291
+ if (!(imageUrls !== null && imageUrls !== void 0 && imageUrls.length)) return $return();
292
+ imageItem = imageUrls[0];
293
+ if (isObject(imageItem)) {
294
+ (_props$onUploadResult = props.onUploadResult) === null || _props$onUploadResult === void 0 || _props$onUploadResult.call(props, {
295
+ url: imageItem.url,
296
+ name: imageItem.name,
297
+ width: values.width
298
+ });
299
+ } else {
300
+ name = imageItem.split('/').pop();
301
+ (_props$onUploadResult2 = props.onUploadResult) === null || _props$onUploadResult2 === void 0 || _props$onUploadResult2.call(props, {
302
+ url: imageItem,
303
+ name: name,
304
+ width: values.width
305
+ });
306
+ }
307
+ } catch (error) {
308
+ message.error((error === null || error === void 0 ? void 0 : error['message']) || '上传图片失败');
309
+ return $return(Promise.reject());
310
+ }
311
+ return $return(Promise.resolve());
312
+ } catch ($boundEx) {
313
+ return $error($boundEx);
314
+ }
315
+ }, $error);
316
+ });
317
+ },
318
+ onCancel: function onCancel() {
319
+ console.log('onCancel');
320
+ }
321
+ });
322
+ };
323
+ return /*#__PURE__*/jsx(Button, {
324
+ type: "default",
325
+ size: "small",
326
+ style: {
327
+ fontSize: 12
328
+ },
329
+ onClick: handleImageClick,
330
+ children: "\u4E0A\u4F20\u56FE\u7247"
331
+ });
332
+ };
333
+
334
+ var _excluded = ["value", "onChange", "onUploadImage", "readonly", "isDarkMode", "className", "style", "readonlyHeightAuto", "height", "hideBorder"];
134
335
  var ReactMdEditor = function ReactMdEditor(props) {
135
336
  var value = props.value,
136
337
  onChange = props.onChange,
@@ -156,106 +357,56 @@ var ReactMdEditor = function ReactMdEditor(props) {
156
357
  // 编辑器实例引用(用于操作内容)
157
358
  var editorRef = useRef(null);
158
359
  // 隐藏的文件选择器ref
159
- var fileInputRef = useRef(null);
160
-
161
- // 触发文件选择框
162
- var handleImageClick = function handleImageClick() {
163
- var _fileInputRef$current;
164
- (_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
165
- };
360
+ useRef(null);
166
361
  var onInnerChange = function onInnerChange(value) {
167
362
  setInnerValue(value);
168
363
  onChange === null || onChange === void 0 || onChange(value);
169
364
  };
170
365
 
171
366
  // 处理图片选择(核心:读取图片并插入)
172
- var handleFileChange = function handleFileChange(e) {
173
- return new Promise(function ($return, $error) {
174
- var _e$target$files, file, imageUrl, imageMarkdown, _editorRef$current, textarea, cursorPosition, newContent;
175
- file = (_e$target$files = e.target.files) === null || _e$target$files === void 0 ? void 0 : _e$target$files[0];
176
- if (!file) return $return();
177
-
178
- // 只允许图片类型
179
- if (!file.type.startsWith('image/')) {
180
- alert('请选择图片文件(jpg/png/gif等)');
181
- return $return();
367
+ var onUploadResult = function onUploadResult(respData) {
368
+ try {
369
+ var imageMarkdown = "\n<img src=\"".concat(respData.url, "\" width=\"").concat(respData.width, "\" alt=\"").concat(respData.name, "\">\n");
370
+ // 将图片Markdown插入到编辑器光标位置
371
+ if (editorRef.current) {
372
+ var _editorRef$current;
373
+ var textarea = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current['textarea'];
374
+ var cursorPosition = textarea.selectionStart;
375
+ var newContent = (innerValue === null || innerValue === void 0 ? void 0 : innerValue.slice(0, cursorPosition)) + imageMarkdown + (innerValue === null || innerValue === void 0 ? void 0 : innerValue.slice(cursorPosition));
376
+ onInnerChange(newContent);
182
377
  }
183
- var $Try_1_Post = function () {
184
- try {
185
- return $return();
186
- } catch ($boundEx) {
187
- return $error($boundEx);
188
- }
189
- };
190
- var $Try_1_Catch = function (error) {
191
- try {
192
- message.error((error === null || error === void 0 ? void 0 : error['']) || '图片上传失败');
193
- return $Try_1_Post();
194
- } catch ($boundEx) {
195
- return $error($boundEx);
196
- }
197
- };
198
- try {
199
- return Promise.resolve(onUploadImage === null || onUploadImage === void 0 ? void 0 : onUploadImage(file)).then(function ($await_2) {
200
- try {
201
- imageUrl = $await_2;
202
- imageMarkdown = "\n![\u622A\u56FE](".concat(imageUrl, ")\n");
203
- // 将图片Markdown插入到编辑器光标位置
204
- if (editorRef.current) {
205
- textarea = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current['textarea'];
206
- cursorPosition = textarea.selectionStart;
207
- newContent = (innerValue === null || innerValue === void 0 ? void 0 : innerValue.slice(0, cursorPosition)) + imageMarkdown + (innerValue === null || innerValue === void 0 ? void 0 : innerValue.slice(cursorPosition));
208
- onInnerChange(newContent);
209
- // 清空文件选择框,避免重复选择同一文件无响应
210
- e.target.value = '';
211
- }
212
- return $Try_1_Post();
213
- } catch ($boundEx) {
214
- return $Try_1_Catch($boundEx);
215
- }
216
- }, $Try_1_Catch);
217
- } catch (error) {
218
- $Try_1_Catch(error);
219
- }
220
- });
378
+ } catch (error) {
379
+ message.error((error === null || error === void 0 ? void 0 : error['message']) || '添加图片失败');
380
+ }
221
381
  };
222
- var imageUploadCommand = {
382
+ var imageUploadCommand = onUploadImage ? {
223
383
  name: 'imageUpload',
224
384
  keyCommand: 'imageUpload',
225
385
  render: function render() {
226
- return /*#__PURE__*/jsx(Button, {
227
- type: "default",
228
- size: "small",
229
- style: {
230
- fontSize: 12
231
- },
232
- onClick: handleImageClick,
233
- children: "\u4E0A\u4F20\u56FE\u7247"
386
+ return /*#__PURE__*/jsx(UploadImageBtn, {
387
+ onUploadResult: onUploadResult,
388
+ onUploadImage: onUploadImage
389
+ // type="default"
390
+ // size="small"
391
+ // style={{ fontSize: 12 }}
392
+ // onClick={handleImageClick}
234
393
  }, "imageUpload");
235
394
  }
236
- };
395
+ } : null;
237
396
  // 支持 mermaid 语法
238
397
  var mermaidCommand = {
239
398
  name: 'mermaid',
240
399
  keyCommand: 'mermaid',
241
400
  render: function render() {
242
- return /*#__PURE__*/jsx(Button, {
243
- type: "default",
244
- size: "small",
245
- style: {
246
- fontSize: 12
247
- },
248
- onClick: function onClick() {
249
- openNewWindow('https://docs.min2k.com/zh/mermaid/syntax/pie.html');
250
- },
251
- children: "\u652F\u6301Mermaid\u56FE\u5F62"
252
- }, "mermaid");
401
+ return /*#__PURE__*/jsx(MermaidViewBtn
402
+ // type="default"
403
+ , {}, "mermaid");
253
404
  }
254
405
  };
255
406
  var MDEditor = window['@uiw/react-md-editor'].default;
256
407
  var commands = window['@uiw/react-md-editor'].commands;
257
408
  var extraCommands = [];
258
- if (onUploadImage && !readonly) {
409
+ if (imageUploadCommand && !readonly) {
259
410
  extraCommands = [imageUploadCommand, commands.divider, mermaidCommand, commands.divider, commands.fullscreen];
260
411
  } else {
261
412
  extraCommands = [mermaidCommand, commands.divider, commands.fullscreen];
@@ -286,11 +437,11 @@ var ReactMdEditor = function ReactMdEditor(props) {
286
437
  if (autoHeight) return false;
287
438
  return restProps.visibleDragbar;
288
439
  }, [autoHeight, restProps.visibleDragbar]);
289
- return /*#__PURE__*/jsxs("div", {
440
+ return /*#__PURE__*/jsx("div", {
290
441
  style: style,
291
442
  className: classNames('v-markdown-editor', className),
292
443
  id: id,
293
- children: [/*#__PURE__*/jsx(MDEditor, _objectSpread2(_objectSpread2({
444
+ children: /*#__PURE__*/jsx(MDEditor, _objectSpread2(_objectSpread2({
294
445
  highlightEnable: true
295
446
  }, restProps), {}, {
296
447
  style: {
@@ -310,16 +461,7 @@ var ReactMdEditor = function ReactMdEditor(props) {
310
461
  code: PluginMermaidCode
311
462
  }
312
463
  }
313
- })), /*#__PURE__*/jsx("input", {
314
- type: "file",
315
- ref: fileInputRef,
316
- accept: "image/*" // 只允许选择图片
317
- ,
318
- onChange: handleFileChange,
319
- style: {
320
- display: 'none'
321
- }
322
- })]
464
+ }))
323
465
  });
324
466
  };
325
467
 
@@ -411,4 +553,4 @@ var MarkdownEditor = function MarkdownEditor(props) {
411
553
  };
412
554
 
413
555
  export { MarkdownEditor as M };
414
- //# sourceMappingURL=content-Px6O7VBy.js.map
556
+ //# sourceMappingURL=content-DnpCk2LR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-DnpCk2LR.js","sources":["@flatbiz/antd/src/markdown-editor/mermaid-view/index.tsx","@flatbiz/antd/src/markdown-editor/plugin-mermaid.tsx","@flatbiz/antd/src/markdown-editor/upload-image/content.tsx","@flatbiz/antd/src/markdown-editor/upload-image/index.tsx","@flatbiz/antd/src/markdown-editor/editor.tsx","@flatbiz/antd/src/markdown-editor/content.tsx"],"sourcesContent":["import { Button } from 'antd';\nimport { openNewWindow } from '@flatbiz/utils';\nimport { CardLayout } from '../../card-layout/card-layout.jsx';\nimport { CodeRender } from '../../code-render/code.jsx';\nimport { dialogModal } from '../../dialog-modal/dialog-modal.jsx';\n\nexport const MermaidViewBtn = () => {\n const handeClick = () => {\n dialogModal.open({\n title: 'Mermaid图形示例',\n content: () => {\n return (\n <div>\n <CardLayout\n title={'示例'}\n subTitle={'在Markdown中使用Mermaid图形'}\n layoutType=\"tight\"\n >\n <CodeRender\n code={`\\`\\`\\`mermaid\nsequenceDiagram\n native->>haipay服务端:获取accessToken\n haipay服务端->>tc服务端: 调用tc的接口获取accessToken\n tc服务端->>haipay服务端: 返回accessToken\n haipay服务端-->>native: 将accessToken返回native\n native->>tch5: 将accessToken返回给tch5,进行登录`}\n />\n </CardLayout>\n <Button\n block\n type=\"primary\"\n ghost\n style={{ marginTop: 20 }}\n onClick={() => {\n openNewWindow(\n 'https://docs.min2k.com/zh/mermaid/syntax/pie.html'\n );\n }}\n >\n 查看更多示例\n </Button>\n </div>\n );\n },\n okHidden: true,\n cancelHidden: true,\n });\n };\n\n return (\n <Button\n key=\"imageUpload\"\n type=\"default\"\n size=\"small\"\n style={{ fontSize: 12 }}\n onClick={handeClick}\n >\n 支持Mermaid图形\n </Button>\n );\n};\n","import { useEffect, useRef, useState } from 'react';\nimport { getCodeString } from 'rehype-rewrite';\nimport { getUuid } from '@flatbiz/utils';\n\nexport const PluginMermaidCode = ({\n children = [],\n className,\n ...props\n}: any) => {\n const demoid = useRef(getUuid());\n const [svgContent, setSvgContent] = useState<string>('');\n const renderAbortRef = useRef<boolean>(false);\n const isMermaid =\n className && /^language-mermaid/.test(className.toLocaleLowerCase());\n const code = children\n ? getCodeString(props.node.children)\n : children[0] || '';\n\n useEffect(() => {\n if (isMermaid && code) {\n // 标记之前的渲染为已取消\n renderAbortRef.current = true;\n\n // 重置取消标志\n renderAbortRef.current = false;\n\n // 生成新的唯一 ID\n const currentId = getUuid();\n demoid.current = currentId;\n\n // 创建一个临时的隐藏容器用于 Mermaid 渲染\n const tempContainer = document.createElement('div');\n tempContainer.style.position = 'absolute';\n tempContainer.style.visibility = 'hidden';\n tempContainer.style.width = '0';\n tempContainer.style.height = '0';\n tempContainer.style.top = '-9999px';\n tempContainer.style.left = '-9999px';\n tempContainer.id = currentId;\n document.body.appendChild(tempContainer);\n\n // 使用 requestAnimationFrame 确保在正确的时机渲染\n const frameId = requestAnimationFrame(() => {\n if (renderAbortRef.current) {\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n return;\n }\n const mermaid = window['mermaid'];\n // 在临时容器中渲染\n mermaid\n .render(currentId, code)\n .then(({ svg }) => {\n // 检查是否已被取消\n if (renderAbortRef.current) {\n return;\n }\n\n // 使用 React state 更新 SVG 内容,而不是直接操作 DOM\n setSvgContent(svg);\n })\n .catch((error) => {\n if (!renderAbortRef.current) {\n console.log('Mermaid render error:', error);\n setSvgContent('');\n }\n })\n .finally(() => {\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n });\n });\n\n // 清理函数:取消正在进行的渲染\n return () => {\n renderAbortRef.current = true;\n cancelAnimationFrame(frameId);\n\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n };\n } else {\n setSvgContent('');\n }\n\n return undefined;\n }, [isMermaid, code]);\n\n if (isMermaid) {\n return (\n <code\n className={className}\n data-name=\"mermaid\"\n dangerouslySetInnerHTML={{ __html: svgContent }}\n />\n );\n }\n return <code className={className}>{children}</code>;\n};\n","import { useCallback } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport type { FormInstance } from 'antd';\nimport { InputNumber } from 'antd';\nimport { isString } from '@dimjs/lang';\nimport { AlertWrapper } from '../../alert-wrapper/alert.jsx';\nimport { EasyForm } from '../../easy-form/form.jsx';\nimport { FormItemHidden } from '../../form-item-hidden/form-item-hidden.jsx';\nimport { FormItemWrapper } from '../../form-item-wrapper/form-item-wrapper.jsx';\nimport { Gap } from '../../gap/gap.jsx';\nimport { UploadMultiType } from '../../upload-multi-type/content.jsx';\n\nfunction getImageDimensions(\n url: string\n): Promise<{ width: number; height: number }> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n resolve({ width: img.naturalWidth, height: img.naturalHeight });\n };\n img.onerror = () => {\n reject(new Error('图片加载失败'));\n };\n img.src = url;\n });\n}\n\nexport const UploadImageContent = (props: {\n form: FormInstance;\n onUploadImage: (file: File) => Promise<{ url: string; name: string }>;\n}) => {\n const onValuesChange = useCallback(\n async (changedFields: any) => {\n if (changedFields.imageUrls) {\n const imageUrls = changedFields.imageUrls;\n if (!imageUrls?.length) return;\n const imageUrl = isString(imageUrls[0])\n ? imageUrls[0]\n : imageUrls[0].url;\n getImageDimensions(imageUrl)\n .then(({ width, height }) => {\n props.form.setFieldsValue({ width, height });\n })\n .catch(() => {});\n }\n },\n [props.form]\n );\n\n const onUploadFile = useMemoizedFn(async (file: File) => {\n const formData = new FormData();\n formData.append('file', file);\n const respData = await props.onUploadImage?.(file);\n return respData;\n });\n\n return (\n <EasyForm\n form={props.form}\n onValuesChange={onValuesChange}\n initialValues={{\n file: [\n {\n url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',\n name: 'xxx1.png',\n },\n {\n url: 'https://file.40017.cn/jinfu/arbitrarily/umm4vdnm25z6kffm.png',\n name: 'xxx2.png',\n },\n ],\n }}\n >\n <FormItemHidden name=\"height\" />\n <FormItemWrapper\n name=\"imageUrls\"\n label=\"图片\"\n rules={[{ required: true, message: '请选择或粘贴图片' }]}\n noStyle\n >\n <UploadMultiType onUploadFile={onUploadFile} maxCount={1} />\n </FormItemWrapper>\n <Gap height={12} />\n <FormItemWrapper name=\"width\" label=\"宽度\">\n <InputNumber\n placeholder=\"请输入宽度\"\n style={{ width: '200px' }}\n addonAfter=\"px\"\n />\n </FormItemWrapper>\n\n <AlertWrapper size=\"small\" description=\"可修改宽度进行等比缩放显示\" />\n </EasyForm>\n );\n};\n","import { Button, message } from 'antd';\nimport { isObject } from '@dimjs/lang';\nimport { dialogModal } from '../../dialog-modal/dialog-modal.jsx';\nimport { UploadImageContent } from './content.jsx';\n\nexport const UploadImageBtn = (props: {\n onUploadResult: (respData: {\n url: string;\n name: string;\n width: number;\n }) => void;\n onUploadImage: (file: File) => Promise<{ url: string; name: string }>;\n}) => {\n const handleImageClick = () => {\n dialogModal.open({\n title: '上传图片',\n content: (form) => {\n return (\n <UploadImageContent form={form} onUploadImage={props.onUploadImage} />\n );\n },\n okText: '确定',\n onOk: async (form) => {\n const values = await form.validateFields();\n try {\n const imageUrls = values.imageUrls;\n if (!imageUrls?.length) return;\n const imageItem = imageUrls[0];\n if (isObject(imageItem)) {\n props.onUploadResult?.({\n url: imageItem.url,\n name: imageItem.name,\n width: values.width,\n });\n } else {\n const name = imageItem.split('/').pop();\n props.onUploadResult?.({\n url: imageItem,\n name: name,\n width: values.width,\n });\n }\n } catch (error) {\n message.error(error?.['message'] || '上传图片失败');\n return Promise.reject();\n }\n return Promise.resolve();\n },\n onCancel: () => {\n console.log('onCancel');\n },\n });\n };\n\n return (\n <Button\n type=\"default\"\n size=\"small\"\n style={{ fontSize: 12 }}\n onClick={handleImageClick}\n >\n 上传图片\n </Button>\n );\n};\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useSize } from 'ahooks';\nimport { message } from 'antd';\nimport { classNames } from '@dimjs/utils';\nimport { getUuid } from '@flatbiz/utils';\nimport { MermaidViewBtn } from './mermaid-view/index.jsx';\nimport { PluginMermaidCode } from './plugin-mermaid.jsx';\nimport type { MarkdownEditorProps } from './type.js';\nimport { UploadImageBtn } from './upload-image/index.jsx';\n// import MDEditor from '@uiw/react-md-editor';\n\n/**\n * ```\n * 使用:@uiw/react-md-editor 组件\n * 文档:https://www.npmjs.com/package/@uiw/react-md-editor\n * ```\n */\nexport const ReactMdEditor = (props: MarkdownEditorProps) => {\n const {\n value,\n onChange,\n onUploadImage,\n readonly,\n isDarkMode,\n className,\n style,\n readonlyHeightAuto,\n height,\n hideBorder,\n ...restProps\n } = props;\n const [innerValue, setInnerValue] = useState<string | undefined>(value);\n\n const readonlyHeightAutoFt = readonlyHeightAuto ?? true;\n\n useEffect(() => {\n console.log('props.value', props.value);\n setInnerValue(props.value);\n }, [props.value]);\n\n // 编辑器实例引用(用于操作内容)\n const editorRef = useRef(null);\n // 隐藏的文件选择器ref\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 触发文件选择框\n const handleImageClick = () => {\n fileInputRef.current?.click();\n };\n\n const onInnerChange = (value?: string) => {\n setInnerValue(value);\n onChange?.(value);\n };\n\n // 处理图片选择(核心:读取图片并插入)\n const onUploadResult = (respData: {\n url: string;\n name: string;\n width: number;\n }) => {\n try {\n const imageMarkdown = `\\n<img src=\"${respData.url}\" width=\"${respData.width}\" alt=\"${respData.name}\">\\n`;\n // 将图片Markdown插入到编辑器光标位置\n if (editorRef.current) {\n const textarea = editorRef.current?.['textarea'] as HTMLTextAreaElement;\n const cursorPosition = textarea.selectionStart;\n const newContent =\n innerValue?.slice(0, cursorPosition) +\n imageMarkdown +\n innerValue?.slice(cursorPosition);\n onInnerChange(newContent);\n }\n } catch (error) {\n message.error(error?.['message'] || '添加图片失败');\n }\n };\n\n const imageUploadCommand = onUploadImage\n ? {\n name: 'imageUpload',\n keyCommand: 'imageUpload',\n render: () => {\n return (\n <UploadImageBtn\n key=\"imageUpload\"\n onUploadResult={onUploadResult}\n onUploadImage={onUploadImage}\n // type=\"default\"\n // size=\"small\"\n // style={{ fontSize: 12 }}\n // onClick={handleImageClick}\n />\n );\n },\n }\n : null;\n // 支持 mermaid 语法\n const mermaidCommand = {\n name: 'mermaid',\n keyCommand: 'mermaid',\n render: () => {\n return (\n <MermaidViewBtn\n // type=\"default\"\n key=\"mermaid\"\n // size=\"small\"\n // style={{ fontSize: 12 }}\n // onClick={() => {\n // openNewWindow('https://docs.min2k.com/zh/mermaid/syntax/pie.html');\n // }}\n />\n );\n },\n };\n\n const MDEditor = window['@uiw/react-md-editor'].default;\n const commands = window['@uiw/react-md-editor'].commands;\n\n let extraCommands: any[] = [];\n\n if (imageUploadCommand && !readonly) {\n extraCommands = [\n imageUploadCommand,\n commands.divider,\n mermaidCommand,\n commands.divider,\n commands.fullscreen,\n ];\n } else {\n extraCommands = [mermaidCommand, commands.divider, commands.fullscreen];\n }\n\n const preview = readonly ? 'preview' : 'live';\n\n const dataColorMode = isDarkMode ? 'dark' : 'light';\n\n const commandsFt = useMemo(() => {\n if (readonly) return [];\n return undefined;\n }, [readonly]);\n\n const id = useMemo(() => {\n return getUuid();\n }, []);\n\n const wmdeMarkdownSize = useSize(() =>\n document.querySelector(`#${id} .wmde-markdown`)\n );\n\n const autoHeight = useMemo(() => {\n return readonly && readonlyHeightAutoFt;\n }, [readonly, readonlyHeightAutoFt]);\n\n const heightFt = useMemo(() => {\n if (autoHeight) {\n return (wmdeMarkdownSize?.height ?? 0) + 25;\n }\n return height;\n }, [autoHeight, wmdeMarkdownSize?.height, height]);\n\n const visibleDragbarFt = useMemo(() => {\n if (autoHeight) return false;\n return restProps.visibleDragbar;\n }, [autoHeight, restProps.visibleDragbar]);\n return (\n <div\n style={style}\n className={classNames('v-markdown-editor', className)}\n id={id}\n >\n <MDEditor\n highlightEnable={true}\n {...restProps}\n style={{ boxShadow: hideBorder ? 'none' : undefined }}\n height={heightFt}\n ref={editorRef}\n value={innerValue}\n preview={preview}\n onChange={onInnerChange}\n visibleDragbar={visibleDragbarFt}\n data-color-mode={dataColorMode}\n extraCommands={extraCommands}\n commands={commandsFt}\n previewOptions={{\n components: {\n code: PluginMermaidCode,\n },\n }}\n />\n {/* 隐藏的文件选择输入框 */}\n {/* <input\n type=\"file\"\n ref={fileInputRef}\n accept=\"image/*\" // 只允许选择图片\n onChange={handleFileChange}\n style={{ display: 'none' }}\n /> */}\n </div>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { Spin } from 'antd';\nimport { CloseCircleFilled } from '@ant-design/icons';\nimport { loadScripts, loadStyles } from '@flatbiz/utils';\nimport { ReactMdEditor } from './editor.jsx';\nimport type { MarkdownEditorProps } from './type.js';\n\n/**\n * markdown编辑器\n * ```\n * 1. 使用@uiw/react-md-editor组件\n * 2. 动态加载 mermaid.js 和 mdeditor.js 和 mdeditor.css\n * //oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js\n * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js\n * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css\n * ```\n */\nexport const MarkdownEditor = (props: MarkdownEditorProps) => {\n const [renderFlag, setRenderFlag] = useState(false);\n const [errorMsg, setErrorMsg] = useState<string | null>(null);\n\n useEffect(() => {\n Promise.all([\n loadScripts({\n scriptUrls: [\n '//oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js',\n '//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js',\n ],\n checkFn: () => {\n const isLoaded = window['@uiw/react-md-editor'] && window['mermaid'];\n return isLoaded;\n },\n intervalMs: 20,\n }),\n loadStyles({\n styleUrls: [\n '//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css',\n ],\n }),\n ])\n .then(() => {\n setRenderFlag(true);\n })\n .catch((error) => {\n console.error(error);\n setRenderFlag(true);\n setErrorMsg(error?.message || 'Markdown编辑器加载失败');\n });\n }, []);\n\n if (!renderFlag) {\n return (\n <Spin\n tip={<div style={{ marginTop: 10 }}>Markdown编辑器加载中</div>}\n size=\"small\"\n >\n <div\n style={{\n padding: 50,\n background: 'rgba(0, 0, 0, 0.05)',\n borderRadius: 4,\n }}\n />\n </Spin>\n );\n }\n\n if (errorMsg) {\n return (\n <div style={{ textAlign: 'center', padding: 20, background: '#fff' }}>\n <CloseCircleFilled style={{ color: '#f00', fontSize: 30 }} />\n <div style={{ color: '#f00', marginTop: 10, fontSize: 16 }}>\n Markdown编辑器加载失败\n </div>\n <div style={{ color: '#898989', marginTop: 5, fontSize: 12 }}>\n {errorMsg}\n </div>\n </div>\n );\n }\n\n return <ReactMdEditor {...props} />;\n};\n"],"names":["MermaidViewBtn","handeClick","dialogModal","open","title","content","_jsxs","children","_jsx","CardLayout","subTitle","layoutType","CodeRender","code","Button","block","type","ghost","style","marginTop","onClick","openNewWindow","okHidden","cancelHidden","size","fontSize","PluginMermaidCode","_ref","_ref$children","className","props","_objectWithoutProperties","_excluded","demoid","useRef","getUuid","_useState","useState","_useState2","_slicedToArray","svgContent","setSvgContent","renderAbortRef","isMermaid","test","toLocaleLowerCase","getCodeString","node","useEffect","current","currentId","tempContainer","document","createElement","position","visibility","width","height","top","left","id","body","appendChild","frameId","requestAnimationFrame","parentNode","removeChild","_unused","mermaid","window","render","then","_ref2","svg","catch","error","console","log","finally","_unused2","cancelAnimationFrame","_unused3","undefined","dangerouslySetInnerHTML","__html","getImageDimensions","url","Promise","resolve","reject","img","Image","onload","naturalWidth","naturalHeight","onerror","Error","src","UploadImageContent","onValuesChange","useCallback","changedFields","$return","$error","imageUrls","length","imageUrl","_isString","form","setFieldsValue","onUploadFile","useMemoizedFn","file","_props$onUploadImage","formData","respData","FormData","append","onUploadImage","call","$await_1","$boundEx","EasyForm","initialValues","name","FormItemHidden","FormItemWrapper","label","rules","required","message","noStyle","UploadMultiType","maxCount","Gap","InputNumber","placeholder","addonAfter","AlertWrapper","description","UploadImageBtn","handleImageClick","okText","onOk","values","imageItem","_props$onUploadResult","_props$onUploadResult2","validateFields","$await_2","_isObject","onUploadResult","split","pop","onCancel","ReactMdEditor","value","onChange","readonly","isDarkMode","readonlyHeightAuto","hideBorder","restProps","innerValue","setInnerValue","readonlyHeightAutoFt","editorRef","onInnerChange","imageMarkdown","concat","_editorRef$current","textarea","cursorPosition","selectionStart","newContent","slice","imageUploadCommand","keyCommand","mermaidCommand","MDEditor","default","commands","extraCommands","divider","fullscreen","preview","dataColorMode","commandsFt","useMemo","wmdeMarkdownSize","useSize","querySelector","autoHeight","heightFt","_wmdeMarkdownSize$hei","visibleDragbarFt","visibleDragbar","_classNames","_objectSpread","highlightEnable","boxShadow","ref","previewOptions","components","MarkdownEditor","renderFlag","setRenderFlag","_useState3","_useState4","errorMsg","setErrorMsg","all","loadScripts","scriptUrls","checkFn","isLoaded","intervalMs","loadStyles","styleUrls","Spin","tip","padding","background","borderRadius","textAlign","_CloseCircleFilled","color"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4439,7 +4439,10 @@ export type MarkdownEditorProps = {
4439
4439
  value?: string;
4440
4440
  onChange?: (value?: string) => void;
4441
4441
  /** 图片上传回调,配置后,在工具栏中显示上传图片按钮 */
4442
- onUploadImage?: (file: File) => Promise<string>;
4442
+ onUploadImage?: (file: File) => Promise<{
4443
+ url: string;
4444
+ name: string;
4445
+ }>;
4443
4446
  /**
4444
4447
  * 当高度参数为百分比时,拖动条无效
4445
4448
  * ```
package/dist/index.js CHANGED
@@ -212,7 +212,7 @@ export { I as InputTextAreaWrapper } from './input-text-area-wrapper-xOYbr_W-.js
212
212
  export { I as InputWrapper } from './input-wrapper-BlzWXhi9.js';
213
213
  export { L as LabelValueRender } from './label-value-PpVVP7P9.js';
214
214
  export { LocalLoading } from './local-loading/index.js';
215
- export { M as MarkdownEditor } from './content-Px6O7VBy.js';
215
+ export { M as MarkdownEditor } from './content-DnpCk2LR.js';
216
216
  export { M as MentionEditor } from './mention-editor-DKDH7LIL.js';
217
217
  export { M as MentionsWrapper } from './mentions-B9WSplSU.js';
218
218
  export { M as ModalAction } from './modal-action-kQ60nGCG.js';
@@ -263,7 +263,7 @@ export { T as TreeModalSelector } from './selector-Btr3mVki.js';
263
263
  export { T as TreeSelectorWrapper } from './selector-CUEdkyTP.js';
264
264
  export { TreeWrapper } from './tree-wrapper/index.js';
265
265
  export { types } from './types/index.js';
266
- export { U as UploadMultiType } from './content-C6Qc7y_K.js';
266
+ export { U as UploadMultiType } from './content-CXmBn9B0.js';
267
267
  export { U as UploadWrapper } from './upload-wrapper-DmZglNR4.js';
268
268
  export { X as XMindPreview } from './x-mind-preview-Bx7UmHAu.js';
269
269
  import './_rollupPluginBabelHelpers-BspM60Sw.js';
@@ -360,7 +360,6 @@ import '@ant-design/icons/es/icons/CaretDownFilled.js';
360
360
  import '@dimjs/model-react';
361
361
  import '@dimjs/utils/tree/walk-through-tree';
362
362
  import 'dequal';
363
- import '@flatbiz/antd';
364
363
  import '@ant-design/icons/es/icons/EyeOutlined.js';
365
364
  import 'simple-mind-map';
366
365
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ .alert-wrapper-small{padding:5px 15px}.alert-wrapper-small .ant-alert-message{font-size:14px;margin-bottom:0}.alert-wrapper-small .ant-alert-description{font-size:12px}.alert-wrapper-small.ant-alert-with-description .ant-alert-icon{font-size:16px;margin-right:8px;margin-top:3px}.alert-wrapper-default{padding:10px 15px}.alert-wrapper-default .ant-alert-message{margin-bottom:0}.alert-wrapper-large{padding:15px}.alert-wrapper-large .ant-alert-message{margin-bottom:0}.block-layout{background-color:var(--block-bg-color)}.light-theme .block-layout{color:rgba(0,0,0,.88)}.dark-theme .block-layout{color:hsla(0,0%,100%,.85)}.bw-center-loading{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-btn.button-remove-gap{height:auto;line-height:normal;margin:0;min-height:auto;padding:0}.card-layout{border-radius:6px;padding:15px}.card-layout-title-sign{padding-left:10px;position:relative}.card-layout-title-sign:before{background:var(--color-primary,#1677ff);border-radius:3px;content:"";height:13px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:3px}.card-layout-title{align-items:center;display:flex;position:relative}.card-layout-title+.card-layout-content{margin-top:8px;padding-left:10px}.card-layout-title-content{font-size:16px;font-weight:500}.card-layout-subtitle,.card-layout-title-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-layout-subtitle{color:#767676;flex:1;font-size:12px}.card-layout-title-extra{margin-left:15px}.card-layout-desc{color:#767676;margin-top:5px}.card-layout-desc,.card-layout-desc-list{font-size:12px;opacity:.7;padding-left:10px}.card-layout-desc+.card-layout-content,.card-layout-desc-list+.card-layout-content{margin-top:8px;padding-left:10px}.card-layout+.card-layout{margin-top:8px}.card-layout-title-fixed{display:flex;flex-direction:column;height:100%;overflow:hidden}.card-layout-title-fixed>.card-layout-content{flex:1;overflow-y:auto}.card-layout-small{padding:8px 15px}.card-layout-small .card-layout-content{margin-top:0}.card-layout-small .card-layout-title-content{font-size:14px}.card-layout-small .card-layout-title-sign:before{height:11px}.card-layout-tight{border-radius:0;padding:0}.code-render{background-color:#f5f5f5;border-radius:4px;color:#676767;font-size:14px;line-height:1.5;margin:0;padding:10px}.code-render-small{font-size:12px}.v-dialog-modal.ant-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px}.v-dialog-modal.ant-modal .ant-modal-content{padding:20px 0}.v-dialog-modal.ant-modal .ant-modal-header{padding:0 24px}.v-dialog-modal.ant-modal .ant-modal-footer{margin:0;padding:10px 24px 0}.v-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.easy-form:not(".easy-form-pure"){background-color:var(--block-bg-color)}.easy-form-anchor{height:0;width:0}.v-flex-layout{display:flex}.v-flex-vertical{flex-direction:column}.upload-image-paste-zone{align-items:center;border:1px dashed #d9d9d9;border-radius:6px;cursor:text;display:flex;justify-content:center;min-height:80px;outline:none;padding:16px;transition:border-color .2s}.upload-image-paste-zone:focus{border-color:#1677ff}.upload-image-paste-zone .upload-image-paste-tip{color:#8c8c8c;font-size:13px}.upload-image-paste-zone .upload-image-paste-tip.success{color:#52c41a}.upload-multi-type-file-list{background:#fafafa;border:1px solid #f0f0f0;border-radius:6px;list-style:none;margin:12px 0 0;padding:0}.upload-multi-type-file-list .upload-multi-type-file-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;font-size:10px;justify-content:space-between;padding:3px 12px}.upload-multi-type-file-list .upload-multi-type-file-item:last-child{border-bottom:none}.upload-multi-type-file-list .upload-multi-type-file-name{color:rgba(0,0,0,.88);flex:1;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-multi-type-file-list .upload-multi-type-file-actions{align-items:center;display:flex;flex-shrink:0;gap:0;margin-left:8px}.upload-multi-type-file-list .upload-multi-type-action-btn{color:#8c8c8c;padding:4px}.upload-multi-type-file-list .upload-multi-type-action-btn:hover{color:#1677ff}.upload-multi-type-file-list .upload-multi-type-action-btn.upload-multi-type-action-btn-danger:hover{color:#ff4d4f}.upload-multi-type-file-name-image{color:#1677ff;cursor:pointer}.v-upload-multi-type{background:#e0e0e0;border-radius:6px;padding:10px}.v-upload-multi-type .v-upload-multi-type-inner{background:#fff;border-radius:6px;padding:0 15px 15px}.v-file-upload .ant-upload-span{cursor:pointer}.ant-upload-list-picture .v-upload-list-item-extra-actions .ant-btn-icon,.ant-upload-list-text .v-upload-list-item-extra-actions .ant-btn-icon{color:rgba(0,0,0,.45)}.ant-upload-list-picture .v-upload-list-item-extra-actions .ant-btn,.ant-upload-list-text .v-upload-list-item-extra-actions .ant-btn{height:20px;margin:0 0 0 5px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions,.ant-upload-list-text .v-upload-list-item-extra-actions{opacity:0;transition:opacity .3s}.ant-upload-list-picture-card .ant-upload-list-item:hover .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .ant-upload-list-item:hover .v-upload-list-item-extra-actions,.ant-upload-list-text .ant-upload-list-item:hover .v-upload-list-item-extra-actions{opacity:1}.ant-upload-list-picture-card .v-upload-list-item-actions-wrapper .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-actions-wrapper .ant-upload-list-item-actions{inset-inline-start:auto!important;width:auto!important}.ant-upload-list-picture-card .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions{position:absolute;z-index:10}.ant-upload-list-picture-card .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions .ant-btn-icon,.ant-upload-list-picture-circle .v-upload-list-item-actions-wrapper .v-upload-list-item-extra-actions .ant-btn-icon{color:#fff}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-1 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-1 .ant-upload-list-item-actions{right:38px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-1 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-1 .v-upload-list-item-extra-actions{right:15px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-2 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-2 .ant-upload-list-item-actions{left:15px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions{right:8px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions .ant-btn,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-2-2 .v-upload-list-item-extra-actions .ant-btn{width:20px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-1 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-1 .ant-upload-list-item-actions{right:47px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-1 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-1 .v-upload-list-item-extra-actions{right:20px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-2 .ant-upload-list-item-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-2 .ant-upload-list-item-actions{right:60px}.ant-upload-list-picture-card .v-upload-list-item-extra-actions-1-2 .v-upload-list-item-extra-actions,.ant-upload-list-picture-circle .v-upload-list-item-extra-actions-1-2 .v-upload-list-item-extra-actions{right:14px}.v-upload-dragger .ant-upload-drag{align-items:center;display:flex;min-height:80px}.v-upload-dragger .v-upload-dragger-content{align-items:center;color:#8c8c8c;display:flex;flex-direction:column;font-size:13px;justify-content:center}
@@ -6,7 +6,10 @@ export type MarkdownEditorProps = {
6
6
  value?: string;
7
7
  onChange?: (value?: string) => void;
8
8
  /** 图片上传回调,配置后,在工具栏中显示上传图片按钮 */
9
- onUploadImage?: (file: File) => Promise<string>;
9
+ onUploadImage?: (file: File) => Promise<{
10
+ url: string;
11
+ name: string;
12
+ }>;
10
13
  /**
11
14
  * 当高度参数为百分比时,拖动条无效
12
15
  * ```
@@ -1,8 +1,11 @@
1
1
  /* eslint-disable */
2
+ import './../box-grid/index.css';
3
+ import './../fba-hooks/index.css';
4
+ import './../pre-defined-class-name/index.css';
2
5
  import './index.css';
3
6
  /*! @flatjs/forge MIT @flatbiz/antd */
4
7
 
5
- export { M as MarkdownEditor } from '../content-Px6O7VBy.js';
8
+ export { M as MarkdownEditor } from '../content-DnpCk2LR.js';
6
9
  import '../_rollupPluginBabelHelpers-BspM60Sw.js';
7
10
  import '@ant-design/icons/es/icons/CloseCircleFilled.js';
8
11
  import 'react';
@@ -10,6 +13,54 @@ import 'antd';
10
13
  import '@flatbiz/utils';
11
14
  import '@dimjs/utils/class-names/class-names';
12
15
  import 'ahooks';
13
- import 'rehype-rewrite';
16
+ import '../card-layout-P-Qb5pCT.js';
17
+ import '@dimjs/lang/is-array';
18
+ import '@dimjs/utils/extend/extend';
19
+ import '../layout-2woF_D6T.js';
14
20
  import 'react/jsx-runtime';
21
+ import '../code-Dbu2QlhZ.js';
22
+ import '../index-C6y8q2MK.js';
23
+ import '../_commonjsHelpers-a3yINl_6.js';
24
+ import '../dialog-modal-CGMNBSgq.js';
25
+ import '@dimjs/lang/is-string';
26
+ import '@dimjs/lang/is-promise';
27
+ import 'react-dom/client';
28
+ import '../button-wrapper-BGjkUPpk.js';
29
+ import '@ant-design/icons/es/icons/LoadingOutlined.js';
30
+ import '../config-provider-wrapper-Bxh9JdL4.js';
31
+ import 'antd/es/locale/en_US.js';
32
+ import 'antd/es/locale/zh_CN.js';
33
+ import 'dayjs';
34
+ import 'dayjs/plugin/advancedFormat.js';
35
+ import 'dayjs/plugin/customParseFormat.js';
36
+ import 'dayjs/plugin/localeData.js';
37
+ import 'dayjs/plugin/utc.js';
38
+ import 'dayjs/plugin/weekday.js';
39
+ import 'dayjs/plugin/weekOfYear.js';
40
+ import 'dayjs/plugin/weekYear.js';
41
+ import '../fba-hooks/index.js';
42
+ import '../use-responsive-point-Bp3D3lZT.js';
43
+ import '../fba-utils-CusZeveq.js';
44
+ import 'dayjs/locale/en.js';
45
+ import 'dayjs/locale/zh-cn.js';
46
+ import '../flex-layout-BGtMe7zr.js';
47
+ import 'rehype-rewrite';
48
+ import '@dimjs/lang/is-object';
49
+ import '../alert-DGRFbqqK.js';
50
+ import '../form-ByFljQr9.js';
51
+ import '../box-grid/index.js';
52
+ import '@dimjs/lang/is-number';
53
+ import '../form-wrapper-DBDMN0mN.js';
54
+ import '../pre-defined-class-name/index.js';
55
+ import '../form-item-hidden-BtQvJEx7.js';
56
+ import '../form-item-wrapper-Ci7-5IKi.js';
57
+ import '../gap-5v_ndf2v.js';
58
+ import '../content-CXmBn9B0.js';
59
+ import '../preview-image-BGEPfC0y.js';
60
+ import '../upload-wrapper-DmZglNR4.js';
61
+ import '@ant-design/icons/es/icons/PlusOutlined.js';
62
+ import '@dimjs/lang/is-plain-object';
63
+ import 'react-dom';
64
+ import '@ant-design/icons/es/icons/DeleteOutlined.js';
65
+ import '@ant-design/icons/es/icons/EyeOutlined.js';
15
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,19 +3,24 @@ import './../fba-hooks/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
5
 
6
- export { U as UploadMultiType } from '../content-C6Qc7y_K.js';
6
+ export { U as UploadMultiType } from '../content-CXmBn9B0.js';
7
7
  import '../_rollupPluginBabelHelpers-BspM60Sw.js';
8
8
  import 'react';
9
9
  import 'ahooks';
10
10
  import 'antd';
11
- import '@flatbiz/antd';
11
+ import '../preview-image-BGEPfC0y.js';
12
+ import '@dimjs/lang/is-string';
13
+ import 'react-dom/client';
14
+ import '@flatbiz/utils';
15
+ import '../fba-hooks/index.js';
16
+ import '../use-responsive-point-Bp3D3lZT.js';
17
+ import 'react/jsx-runtime';
12
18
  import '../upload-wrapper-DmZglNR4.js';
13
19
  import '@ant-design/icons/es/icons/PlusOutlined.js';
14
20
  import '@dimjs/utils/class-names/class-names';
15
21
  import '@dimjs/lang/is-plain-object';
16
22
  import '@dimjs/utils/extend/extend';
17
23
  import 'react-dom';
18
- import '@flatbiz/utils';
19
24
  import '../button-wrapper-BGjkUPpk.js';
20
25
  import '@ant-design/icons/es/icons/LoadingOutlined.js';
21
26
  import '@dimjs/lang/is-promise';
@@ -30,13 +35,10 @@ import 'dayjs/plugin/utc.js';
30
35
  import 'dayjs/plugin/weekday.js';
31
36
  import 'dayjs/plugin/weekOfYear.js';
32
37
  import 'dayjs/plugin/weekYear.js';
33
- import '../fba-hooks/index.js';
34
- import '../use-responsive-point-Bp3D3lZT.js';
35
38
  import '../fba-utils-CusZeveq.js';
36
39
  import '@dimjs/lang/is-array';
37
40
  import 'dayjs/locale/en.js';
38
41
  import 'dayjs/locale/zh-cn.js';
39
- import 'react/jsx-runtime';
40
42
  import '@ant-design/icons/es/icons/DeleteOutlined.js';
41
43
  import '@ant-design/icons/es/icons/EyeOutlined.js';
42
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "5.2.7",
3
+ "version": "5.2.8",
4
4
  "homepage": "https://gitlab.itcjf.com/flatjs/flat-biz/packages/antd",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-C6Qc7y_K.js","sources":["@flatbiz/antd/src/upload-multi-type/file-view.tsx","@flatbiz/antd/src/upload-multi-type/content.tsx"],"sourcesContent":["import { Button } from 'antd';\nimport { DeleteOutlined, EyeOutlined } from '@ant-design/icons';\nimport type { UploadMultiTypeFileItem } from './type.js';\n\nconst IMAGE_EXTENSIONS = [\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'webp',\n 'bmp',\n 'svg',\n 'heic',\n 'heif',\n];\n\nfunction isImageFile(name?: string, url?: string): boolean {\n const str = name || url || '';\n const ext = str.slice(str.lastIndexOf('.') + 1).toLowerCase();\n return IMAGE_EXTENSIONS.includes(ext);\n}\n\nexport const FileListView = (props: {\n uploadList: UploadMultiTypeFileItem[];\n onPreview: (url: string) => void;\n onRemove: (index: number) => void;\n disabled?: boolean;\n}) => {\n const { uploadList, onPreview, onRemove } = props;\n\n if (!props.uploadList?.length) {\n return null;\n }\n return (\n <ul className=\"upload-multi-type-file-list\">\n {uploadList.map((item, index) => {\n const isImage = isImageFile(item.name, item.url);\n return (\n <li\n key={`${item.url}-${index}`}\n className=\"upload-multi-type-file-item\"\n >\n <span className=\"upload-multi-type-file-name\" title={item.name}>\n {isImage ? (\n <span\n className=\"upload-multi-type-file-name-image\"\n onClick={() => onPreview(item.url)}\n >\n {item.name}\n </span>\n ) : (\n <span>{item.name}</span>\n )}\n </span>\n <span className=\"upload-multi-type-file-actions\">\n {isImage ? (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<EyeOutlined />}\n className=\"upload-multi-type-action-btn\"\n onClick={() => onPreview(item.url)}\n aria-label=\"预览\"\n />\n ) : null}\n <Button\n type=\"text\"\n size=\"small\"\n hidden={props.disabled}\n icon={<DeleteOutlined />}\n className=\"upload-multi-type-action-btn upload-multi-type-action-btn-danger\"\n onClick={() => onRemove(index)}\n aria-label=\"删除\"\n />\n </span>\n </li>\n );\n })}\n </ul>\n );\n};\n","import { useMemo, useState } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport { message, Spin, Tabs } from 'antd';\nimport { dialogPreviewImage } from '@flatbiz/antd';\nimport { UploadWrapper } from '../upload-wrapper/upload-wrapper.jsx';\nimport { FileListView } from './file-view.jsx';\nimport type { UploadMultiTypeFileItem } from './type.js';\nimport './style.less';\n\nfunction getImageFileFromPaste(e: React.ClipboardEvent): File | null {\n const items = e.clipboardData?.items;\n if (!items) return null;\n for (let i = 0; i < items.length; i++) {\n if (items[i].type.indexOf('image') !== -1) {\n return items[i].getAsFile();\n }\n }\n return null;\n}\n\ntype UploadMultiTypeProps = {\n value?: string[] | UploadMultiTypeFileItem[];\n onChange?: (v: any) => void;\n /** 上传文件 */\n onUploadFile: (file: File) => Promise<UploadMultiTypeFileItem>;\n /** 最大上传数量 */\n maxCount?: number;\n /** 上传文件类型,例如:image/*, video/*, audio/* */\n accept?: string;\n /** 只上传图片,默认:false;设置accept时,此配置无效 */\n onlyUploadImage?: boolean;\n\n disabled?: boolean;\n};\n\n/**\n * 上传组件,同时支持多种上传方式,支持【点击&拖拽上传】、【粘贴上传】\n * ```\n * @example\n * const onUploadFile = useMemoizedFn(async (file: File) => {\n * const formData = new FormData();\n * formData.append('file', file);\n * const respData = await serviceHandle.upload<{\n * url: string;\n * name?: string;\n * }>('https://pubtest.hnapay.com/api/file/upload', formData);\n * return respData;\n * });\n *\n * <UploadMultiType onUploadFile={onUploadFile} maxCount={1} />\n * ```\n */\nexport const UploadMultiType = (props: UploadMultiTypeProps) => {\n const { value, onChange } = props;\n const [showPasteSuccess, setShowPasteSuccess] = useState(false);\n const [loading, setLoading] = useState(false);\n const maxCount = props.maxCount;\n const [uploadList, setUploadList] = useState<UploadMultiTypeFileItem[]>(() =>\n Array.isArray(value) && value.length > 0\n ? value.map((item: any) => ({\n name: item?.name ?? item?.url?.split?.('/').pop(),\n url: item?.url ?? '',\n }))\n : []\n );\n\n const onChangeHandler = useMemoizedFn(async (data: any) => {\n const files = data as File[];\n if (!files?.length) return;\n setLoading(true);\n try {\n const respData = await props.onUploadFile?.(files[0]);\n const fileName = respData?.name || respData?.url.split('/').pop();\n const newItem = { name: fileName, url: respData?.url };\n if (maxCount && maxCount == 1) {\n setUploadList([newItem]);\n onChange?.([newItem]);\n } else {\n setUploadList((prev) => {\n let prevListNew = prev;\n if (maxCount && prevListNew.length >= maxCount) {\n prevListNew = prevListNew.slice(0, maxCount - 1);\n }\n const mergedList = [...prevListNew, newItem];\n onChange?.(mergedList);\n return mergedList;\n });\n }\n } catch (error) {\n void message.error(error?.['message'] || '上传操作失败');\n throw error;\n } finally {\n setLoading(false);\n }\n });\n\n const onPaste = useMemoizedFn(async (e: React.ClipboardEvent) => {\n e.preventDefault();\n const file = getImageFileFromPaste(e);\n if (!file) return;\n await onChangeHandler?.([file]);\n setShowPasteSuccess(true);\n setTimeout(() => {\n setShowPasteSuccess(false);\n }, 1500);\n });\n const onPreview = useMemoizedFn((url: string) => {\n dialogPreviewImage.show({ imageUrl: url });\n });\n\n const onRemove = useMemoizedFn((index: number) => {\n setUploadList((prev) => {\n const next = prev.filter((_, i) => i !== index);\n onChange?.(next);\n return next;\n });\n });\n\n const accept = useMemo(() => {\n if (props.accept) {\n return props.accept;\n }\n return props.onlyUploadImage ? 'image/*' : undefined;\n }, [props.accept, props.onlyUploadImage]);\n\n if (props.disabled) {\n if (!uploadList?.length) {\n return null;\n }\n return (\n <div className=\"v-upload-multi-type-disabled\">\n <FileListView\n uploadList={uploadList}\n onPreview={onPreview}\n onRemove={onRemove}\n disabled={props.disabled}\n />\n </div>\n );\n }\n\n return (\n <div className={'v-upload-multi-type'}>\n <div className=\"v-upload-multi-type-inner\">\n <Tabs\n destroyOnHidden={false}\n items={[\n {\n key: 'dragger',\n label: '点击&拖拽上传',\n forceRender: true,\n children: (\n <Spin spinning={loading}>\n <UploadWrapper\n name=\"file\"\n accept={accept}\n maxCount={maxCount}\n autoSubmit={false}\n onChange={onChangeHandler}\n isDragger\n showUploadList={false}\n />\n </Spin>\n ),\n },\n {\n key: 'paste',\n label: '粘贴上传',\n forceRender: true,\n children: (\n <Spin spinning={loading}>\n <div\n className=\"upload-image-paste-zone\"\n onPaste={onPaste}\n tabIndex={0}\n role=\"textbox\"\n aria-label=\"粘贴图片区域\"\n >\n {showPasteSuccess ? (\n <span className=\"upload-image-paste-tip success\">\n 已粘贴上传图片成功\n </span>\n ) : (\n <span className=\"upload-image-paste-tip\">\n 在此区域点击后使用 Ctrl+V / Cmd+V 粘贴图片\n </span>\n )}\n </div>\n </Spin>\n ),\n },\n ]}\n />\n {uploadList.length > 0 ? (\n <FileListView\n uploadList={uploadList}\n onPreview={onPreview}\n onRemove={onRemove}\n disabled={props.disabled}\n />\n ) : null}\n </div>\n </div>\n );\n};\n"],"names":["IMAGE_EXTENSIONS","isImageFile","name","url","str","ext","slice","lastIndexOf","toLowerCase","includes","FileListView","props","_props$uploadList","uploadList","onPreview","onRemove","length","_jsx","className","children","map","item","index","isImage","_jsxs","title","onClick","Button","type","size","icon","_EyeOutlined","hidden","disabled","_DeleteOutlined","concat","getImageFileFromPaste","e","_e$clipboardData","items","clipboardData","i","indexOf","getAsFile","UploadMultiType","value","onChange","_useState","useState","_useState2","_slicedToArray","showPasteSuccess","setShowPasteSuccess","_useState3","_useState4","loading","setLoading","maxCount","_useState5","Array","isArray","_item$name","_item$url","_item$url$split","_item$url2","split","call","pop","_useState6","setUploadList","onChangeHandler","useMemoizedFn","data","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","$boundEx","bind","files","_props$onUploadFile","respData","fileName","newItem","$Try_1_Post","$Try_1_Catch","error","message","resolve","onUploadFile","then","$await_2","prev","prevListNew","mergedList","_toConsumableArray","onPaste","file","preventDefault","$await_3","setTimeout","dialogPreviewImage","show","imageUrl","next","filter","_","accept","useMemo","onlyUploadImage","undefined","Tabs","destroyOnHidden","key","label","forceRender","Spin","spinning","UploadWrapper","autoSubmit","isDragger","showUploadList","tabIndex","role"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-Px6O7VBy.js","sources":["@flatbiz/antd/src/markdown-editor/plugin-mermaid.tsx","@flatbiz/antd/src/markdown-editor/editor.tsx","@flatbiz/antd/src/markdown-editor/content.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { getCodeString } from 'rehype-rewrite';\nimport { getUuid } from '@flatbiz/utils';\n\nexport const PluginMermaidCode = ({\n children = [],\n className,\n ...props\n}: any) => {\n const demoid = useRef(getUuid());\n const [svgContent, setSvgContent] = useState<string>('');\n const renderAbortRef = useRef<boolean>(false);\n const isMermaid =\n className && /^language-mermaid/.test(className.toLocaleLowerCase());\n const code = children\n ? getCodeString(props.node.children)\n : children[0] || '';\n\n useEffect(() => {\n if (isMermaid && code) {\n // 标记之前的渲染为已取消\n renderAbortRef.current = true;\n\n // 重置取消标志\n renderAbortRef.current = false;\n\n // 生成新的唯一 ID\n const currentId = getUuid();\n demoid.current = currentId;\n\n // 创建一个临时的隐藏容器用于 Mermaid 渲染\n const tempContainer = document.createElement('div');\n tempContainer.style.position = 'absolute';\n tempContainer.style.visibility = 'hidden';\n tempContainer.style.width = '0';\n tempContainer.style.height = '0';\n tempContainer.style.top = '-9999px';\n tempContainer.style.left = '-9999px';\n tempContainer.id = currentId;\n document.body.appendChild(tempContainer);\n\n // 使用 requestAnimationFrame 确保在正确的时机渲染\n const frameId = requestAnimationFrame(() => {\n if (renderAbortRef.current) {\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n return;\n }\n const mermaid = window['mermaid'];\n // 在临时容器中渲染\n mermaid\n .render(currentId, code)\n .then(({ svg }) => {\n // 检查是否已被取消\n if (renderAbortRef.current) {\n return;\n }\n\n // 使用 React state 更新 SVG 内容,而不是直接操作 DOM\n setSvgContent(svg);\n })\n .catch((error) => {\n if (!renderAbortRef.current) {\n console.log('Mermaid render error:', error);\n setSvgContent('');\n }\n })\n .finally(() => {\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n });\n });\n\n // 清理函数:取消正在进行的渲染\n return () => {\n renderAbortRef.current = true;\n cancelAnimationFrame(frameId);\n\n // 清理临时容器\n try {\n if (tempContainer.parentNode) {\n document.body.removeChild(tempContainer);\n }\n } catch {\n // 忽略清理错误\n }\n };\n } else {\n setSvgContent('');\n }\n\n return undefined;\n }, [isMermaid, code]);\n\n if (isMermaid) {\n return (\n <code\n className={className}\n data-name=\"mermaid\"\n dangerouslySetInnerHTML={{ __html: svgContent }}\n />\n );\n }\n return <code className={className}>{children}</code>;\n};\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useSize } from 'ahooks';\nimport { Button, message } from 'antd';\nimport { classNames } from '@dimjs/utils';\nimport { getUuid, openNewWindow } from '@flatbiz/utils';\nimport { PluginMermaidCode } from './plugin-mermaid.jsx';\nimport type { MarkdownEditorProps } from './type.js';\n// import MDEditor from '@uiw/react-md-editor';\n\n/**\n * ```\n * 使用:@uiw/react-md-editor 组件\n * 文档:https://www.npmjs.com/package/@uiw/react-md-editor\n * ```\n */\nexport const ReactMdEditor = (props: MarkdownEditorProps) => {\n const {\n value,\n onChange,\n onUploadImage,\n readonly,\n isDarkMode,\n className,\n style,\n readonlyHeightAuto,\n height,\n hideBorder,\n ...restProps\n } = props;\n const [innerValue, setInnerValue] = useState<string | undefined>(value);\n\n const readonlyHeightAutoFt = readonlyHeightAuto ?? true;\n\n useEffect(() => {\n console.log('props.value', props.value);\n setInnerValue(props.value);\n }, [props.value]);\n\n // 编辑器实例引用(用于操作内容)\n const editorRef = useRef(null);\n // 隐藏的文件选择器ref\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 触发文件选择框\n const handleImageClick = () => {\n fileInputRef.current?.click();\n };\n\n const onInnerChange = (value?: string) => {\n setInnerValue(value);\n onChange?.(value);\n };\n\n // 处理图片选择(核心:读取图片并插入)\n const handleFileChange = async (e) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n // 只允许图片类型\n if (!file.type.startsWith('image/')) {\n alert('请选择图片文件(jpg/png/gif等)');\n return;\n }\n try {\n const imageUrl = await onUploadImage?.(file);\n const imageMarkdown = `\\n![截图](${imageUrl})\\n`;\n // 将图片Markdown插入到编辑器光标位置\n if (editorRef.current) {\n const textarea = editorRef.current?.['textarea'] as HTMLTextAreaElement;\n const cursorPosition = textarea.selectionStart;\n const newContent =\n innerValue?.slice(0, cursorPosition) +\n imageMarkdown +\n innerValue?.slice(cursorPosition);\n onInnerChange(newContent);\n // 清空文件选择框,避免重复选择同一文件无响应\n e.target.value = '';\n }\n } catch (error) {\n message.error(error?.[''] || '图片上传失败');\n }\n };\n\n const imageUploadCommand = {\n name: 'imageUpload',\n keyCommand: 'imageUpload',\n render: () => {\n return (\n <Button\n key=\"imageUpload\"\n type=\"default\"\n size=\"small\"\n style={{ fontSize: 12 }}\n onClick={handleImageClick}\n >\n 上传图片\n </Button>\n );\n },\n };\n // 支持 mermaid 语法\n const mermaidCommand = {\n name: 'mermaid',\n keyCommand: 'mermaid',\n render: () => {\n return (\n <Button\n type=\"default\"\n key=\"mermaid\"\n size=\"small\"\n style={{ fontSize: 12 }}\n onClick={() => {\n openNewWindow('https://docs.min2k.com/zh/mermaid/syntax/pie.html');\n }}\n >\n 支持Mermaid图形\n </Button>\n );\n },\n };\n\n const MDEditor = window['@uiw/react-md-editor'].default;\n const commands = window['@uiw/react-md-editor'].commands;\n\n let extraCommands: any[] = [];\n\n if (onUploadImage && !readonly) {\n extraCommands = [\n imageUploadCommand,\n commands.divider,\n mermaidCommand,\n commands.divider,\n commands.fullscreen,\n ];\n } else {\n extraCommands = [mermaidCommand, commands.divider, commands.fullscreen];\n }\n\n const preview = readonly ? 'preview' : 'live';\n\n const dataColorMode = isDarkMode ? 'dark' : 'light';\n\n const commandsFt = useMemo(() => {\n if (readonly) return [];\n return undefined;\n }, [readonly]);\n\n const id = useMemo(() => {\n return getUuid();\n }, []);\n\n const wmdeMarkdownSize = useSize(() =>\n document.querySelector(`#${id} .wmde-markdown`)\n );\n\n const autoHeight = useMemo(() => {\n return readonly && readonlyHeightAutoFt;\n }, [readonly, readonlyHeightAutoFt]);\n\n const heightFt = useMemo(() => {\n if (autoHeight) {\n return (wmdeMarkdownSize?.height ?? 0) + 25;\n }\n return height;\n }, [autoHeight, wmdeMarkdownSize?.height, height]);\n\n const visibleDragbarFt = useMemo(() => {\n if (autoHeight) return false;\n return restProps.visibleDragbar;\n }, [autoHeight, restProps.visibleDragbar]);\n return (\n <div\n style={style}\n className={classNames('v-markdown-editor', className)}\n id={id}\n >\n <MDEditor\n highlightEnable={true}\n {...restProps}\n style={{ boxShadow: hideBorder ? 'none' : undefined }}\n height={heightFt}\n ref={editorRef}\n value={innerValue}\n preview={preview}\n onChange={onInnerChange}\n visibleDragbar={visibleDragbarFt}\n data-color-mode={dataColorMode}\n extraCommands={extraCommands}\n commands={commandsFt}\n previewOptions={{\n components: {\n code: PluginMermaidCode,\n },\n }}\n />\n {/* 隐藏的文件选择输入框 */}\n <input\n type=\"file\"\n ref={fileInputRef}\n accept=\"image/*\" // 只允许选择图片\n onChange={handleFileChange}\n style={{ display: 'none' }}\n />\n </div>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { Spin } from 'antd';\nimport { CloseCircleFilled } from '@ant-design/icons';\nimport { loadScripts, loadStyles } from '@flatbiz/utils';\nimport { ReactMdEditor } from './editor.jsx';\nimport type { MarkdownEditorProps } from './type.js';\n\n/**\n * markdown编辑器\n * ```\n * 1. 使用@uiw/react-md-editor组件\n * 2. 动态加载 mermaid.js 和 mdeditor.js 和 mdeditor.css\n * //oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js\n * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js\n * //oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css\n * ```\n */\nexport const MarkdownEditor = (props: MarkdownEditorProps) => {\n const [renderFlag, setRenderFlag] = useState(false);\n const [errorMsg, setErrorMsg] = useState<string | null>(null);\n\n useEffect(() => {\n Promise.all([\n loadScripts({\n scriptUrls: [\n '//oss.ly.com/newpay/cdn/react-md-editor/mermaid.11.12.0.min.js',\n '//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.js',\n ],\n checkFn: () => {\n const isLoaded = window['@uiw/react-md-editor'] && window['mermaid'];\n return isLoaded;\n },\n intervalMs: 20,\n }),\n loadStyles({\n styleUrls: [\n '//oss.ly.com/newpay/cdn/react-md-editor/4.0.11/mdeditor.min.css',\n ],\n }),\n ])\n .then(() => {\n setRenderFlag(true);\n })\n .catch((error) => {\n console.error(error);\n setRenderFlag(true);\n setErrorMsg(error?.message || 'Markdown编辑器加载失败');\n });\n }, []);\n\n if (!renderFlag) {\n return (\n <Spin\n tip={<div style={{ marginTop: 10 }}>Markdown编辑器加载中</div>}\n size=\"small\"\n >\n <div\n style={{\n padding: 50,\n background: 'rgba(0, 0, 0, 0.05)',\n borderRadius: 4,\n }}\n />\n </Spin>\n );\n }\n\n if (errorMsg) {\n return (\n <div style={{ textAlign: 'center', padding: 20, background: '#fff' }}>\n <CloseCircleFilled style={{ color: '#f00', fontSize: 30 }} />\n <div style={{ color: '#f00', marginTop: 10, fontSize: 16 }}>\n Markdown编辑器加载失败\n </div>\n <div style={{ color: '#898989', marginTop: 5, fontSize: 12 }}>\n {errorMsg}\n </div>\n </div>\n );\n }\n\n return <ReactMdEditor {...props} />;\n};\n"],"names":["PluginMermaidCode","_ref","_ref$children","children","className","props","_objectWithoutProperties","_excluded","demoid","useRef","getUuid","_useState","useState","_useState2","_slicedToArray","svgContent","setSvgContent","renderAbortRef","isMermaid","test","toLocaleLowerCase","code","getCodeString","node","useEffect","current","currentId","tempContainer","document","createElement","style","position","visibility","width","height","top","left","id","body","appendChild","frameId","requestAnimationFrame","parentNode","removeChild","_unused","mermaid","window","render","then","_ref2","svg","catch","error","console","log","finally","_unused2","cancelAnimationFrame","_unused3","undefined","_jsx","dangerouslySetInnerHTML","__html","ReactMdEditor","value","onChange","onUploadImage","readonly","isDarkMode","readonlyHeightAuto","hideBorder","restProps","innerValue","setInnerValue","readonlyHeightAutoFt","editorRef","fileInputRef","handleImageClick","_fileInputRef$current","click","onInnerChange","handleFileChange","e","Promise","$return","$error","_e$target$files","file","imageUrl","imageMarkdown","_editorRef$current","textarea","cursorPosition","newContent","target","files","type","startsWith","alert","$Try_1_Post","$boundEx","$Try_1_Catch","message","resolve","$await_2","concat","selectionStart","slice","imageUploadCommand","name","keyCommand","Button","size","fontSize","onClick","mermaidCommand","openNewWindow","MDEditor","default","commands","extraCommands","divider","fullscreen","preview","dataColorMode","commandsFt","useMemo","wmdeMarkdownSize","useSize","querySelector","autoHeight","heightFt","_wmdeMarkdownSize$hei","visibleDragbarFt","visibleDragbar","_jsxs","_classNames","_objectSpread","highlightEnable","boxShadow","ref","previewOptions","components","accept","display","MarkdownEditor","renderFlag","setRenderFlag","_useState3","_useState4","errorMsg","setErrorMsg","all","loadScripts","scriptUrls","checkFn","isLoaded","intervalMs","loadStyles","styleUrls","Spin","tip","marginTop","padding","background","borderRadius","textAlign","_CloseCircleFilled","color"],"mappings":";;;;;;;;;;;;;AAIO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAInB;AAAA,EAAA,IAAAC,aAAA,GAAAD,IAAA,CAHTE,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,aAAA;IACbE,SAAS,GAAAH,IAAA,CAATG,SAAS;AACNC,IAAAA,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,WAAA,CAAA;AAER,EAAA,IAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,EAAE,CAAC;AAChC,EAAA,IAAAC,SAAA,GAAoCC,QAAQ,CAAS,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAjDI,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,UAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAMI,cAAc,GAAGR,MAAM,CAAU,KAAK,CAAC;AAC7C,EAAA,IAAMS,SAAS,GACbd,SAAS,IAAI,mBAAmB,CAACe,IAAI,CAACf,SAAS,CAACgB,iBAAiB,EAAE,CAAC;AACtE,EAAA,IAAMC,IAAI,GAAGlB,QAAQ,GACjBmB,aAAa,CAACjB,KAAK,CAACkB,IAAI,CAACpB,QAAQ,CAAC,GAClCA,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AAErBqB,EAAAA,SAAS,CAAC,YAAM;IACd,IAAIN,SAAS,IAAIG,IAAI,EAAE;AACrB;MACAJ,cAAc,CAACQ,OAAO,GAAG,IAAI;;AAE7B;MACAR,cAAc,CAACQ,OAAO,GAAG,KAAK;;AAE9B;AACA,MAAA,IAAMC,SAAS,GAAGhB,OAAO,EAAE;MAC3BF,MAAM,CAACiB,OAAO,GAAGC,SAAS;;AAE1B;AACA,MAAA,IAAMC,aAAa,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;AACnDF,MAAAA,aAAa,CAACG,KAAK,CAACC,QAAQ,GAAG,UAAU;AACzCJ,MAAAA,aAAa,CAACG,KAAK,CAACE,UAAU,GAAG,QAAQ;AACzCL,MAAAA,aAAa,CAACG,KAAK,CAACG,KAAK,GAAG,GAAG;AAC/BN,MAAAA,aAAa,CAACG,KAAK,CAACI,MAAM,GAAG,GAAG;AAChCP,MAAAA,aAAa,CAACG,KAAK,CAACK,GAAG,GAAG,SAAS;AACnCR,MAAAA,aAAa,CAACG,KAAK,CAACM,IAAI,GAAG,SAAS;MACpCT,aAAa,CAACU,EAAE,GAAGX,SAAS;AAC5BE,MAAAA,QAAQ,CAACU,IAAI,CAACC,WAAW,CAACZ,aAAa,CAAC;;AAExC;AACA,MAAA,IAAMa,OAAO,GAAGC,qBAAqB,CAAC,YAAM;QAC1C,IAAIxB,cAAc,CAACQ,OAAO,EAAE;AAC1B;UACA,IAAI;YACF,IAAIE,aAAa,CAACe,UAAU,EAAE;AAC5Bd,cAAAA,QAAQ,CAACU,IAAI,CAACK,WAAW,CAAChB,aAAa,CAAC;AAC1C,YAAA;UACF,CAAC,CAAC,OAAAiB,OAAA,EAAM;AACN;AAAA,UAAA;AAEF,UAAA;AACF,QAAA;AACA,QAAA,IAAMC,OAAO,GAAGC,MAAM,CAAC,SAAS,CAAC;AACjC;AACAD,QAAAA,OAAO,CACJE,MAAM,CAACrB,SAAS,EAAEL,IAAI,CAAC,CACvB2B,IAAI,CAAC,UAAAC,KAAA,EAAa;AAAA,UAAA,IAAVC,GAAG,GAAAD,KAAA,CAAHC,GAAG;AACV;UACA,IAAIjC,cAAc,CAACQ,OAAO,EAAE;AAC1B,YAAA;AACF,UAAA;;AAEA;UACAT,aAAa,CAACkC,GAAG,CAAC;AACpB,QAAA,CAAC,CAAC,CACDC,KAAK,CAAC,UAACC,KAAK,EAAK;AAChB,UAAA,IAAI,CAACnC,cAAc,CAACQ,OAAO,EAAE;AAC3B4B,YAAAA,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEF,KAAK,CAAC;YAC3CpC,aAAa,CAAC,EAAE,CAAC;AACnB,UAAA;AACF,QAAA,CAAC,CAAC,CACDuC,OAAO,CAAC,YAAM;AACb;UACA,IAAI;YACF,IAAI5B,aAAa,CAACe,UAAU,EAAE;AAC5Bd,cAAAA,QAAQ,CAACU,IAAI,CAACK,WAAW,CAAChB,aAAa,CAAC;AAC1C,YAAA;UACF,CAAC,CAAC,OAAA6B,QAAA,EAAM;AACN;AAAA,UAAA;AAEJ,QAAA,CAAC,CAAC;AACN,MAAA,CAAC,CAAC;;AAEF;AACA,MAAA,OAAO,YAAM;QACXvC,cAAc,CAACQ,OAAO,GAAG,IAAI;QAC7BgC,oBAAoB,CAACjB,OAAO,CAAC;;AAE7B;QACA,IAAI;UACF,IAAIb,aAAa,CAACe,UAAU,EAAE;AAC5Bd,YAAAA,QAAQ,CAACU,IAAI,CAACK,WAAW,CAAChB,aAAa,CAAC;AAC1C,UAAA;QACF,CAAC,CAAC,OAAA+B,QAAA,EAAM;AACN;AAAA,QAAA;MAEJ,CAAC;AACH,IAAA,CAAC,MAAM;MACL1C,aAAa,CAAC,EAAE,CAAC;AACnB,IAAA;AAEA,IAAA,OAAO2C,SAAS;AAClB,EAAA,CAAC,EAAE,CAACzC,SAAS,EAAEG,IAAI,CAAC,CAAC;AAErB,EAAA,IAAIH,SAAS,EAAE;AACb,IAAA,oBACE0C,GAAA,CAAA,MAAA,EAAA;AACExD,MAAAA,SAAS,EAAEA,SAAU;AACrB,MAAA,WAAA,EAAU,SAAS;AACnByD,MAAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAE/C;AAAW;AAAE,KACjD,CAAC;AAEN,EAAA;AACA,EAAA,oBAAO6C,GAAA,CAAA,MAAA,EAAA;AAAMxD,IAAAA,SAAS,EAAEA,SAAU;AAAAD,IAAAA,QAAA,EAAEA;AAAQ,GAAO,CAAC;AACtD,CAAC;;;AC7GD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAM4D,aAAa,GAAG,SAAhBA,aAAaA,CAAI1D,KAA0B,EAAK;AAC3D,EAAA,IACE2D,KAAK,GAWH3D,KAAK,CAXP2D,KAAK;IACLC,QAAQ,GAUN5D,KAAK,CAVP4D,QAAQ;IACRC,aAAa,GASX7D,KAAK,CATP6D,aAAa;IACbC,QAAQ,GAQN9D,KAAK,CARP8D,QAAQ;IACRC,UAAU,GAOR/D,KAAK,CAPP+D,UAAU;IACVhE,SAAS,GAMPC,KAAK,CANPD,SAAS;IACT0B,KAAK,GAKHzB,KAAK,CALPyB,KAAK;IACLuC,kBAAkB,GAIhBhE,KAAK,CAJPgE,kBAAkB;IAClBnC,MAAM,GAGJ7B,KAAK,CAHP6B,MAAM;IACNoC,UAAU,GAERjE,KAAK,CAFPiE,UAAU;AACPC,IAAAA,SAAS,GAAAjE,wBAAA,CACVD,KAAK,EAAAE,SAAA,CAAA;AACT,EAAA,IAAAI,SAAA,GAAoCC,QAAQ,CAAqBoD,KAAK,CAAC;IAAAnD,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAhE6D,IAAAA,UAAU,GAAA3D,UAAA,CAAA,CAAA,CAAA;AAAE4D,IAAAA,aAAa,GAAA5D,UAAA,CAAA,CAAA,CAAA;EAEhC,IAAM6D,oBAAoB,GAAGL,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAA,MAAA,GAAlBA,kBAAkB,GAAI,IAAI;AAEvD7C,EAAAA,SAAS,CAAC,YAAM;IACd6B,OAAO,CAACC,GAAG,CAAC,aAAa,EAAEjD,KAAK,CAAC2D,KAAK,CAAC;AACvCS,IAAAA,aAAa,CAACpE,KAAK,CAAC2D,KAAK,CAAC;AAC5B,EAAA,CAAC,EAAE,CAAC3D,KAAK,CAAC2D,KAAK,CAAC,CAAC;;AAEjB;AACA,EAAA,IAAMW,SAAS,GAAGlE,MAAM,CAAC,IAAI,CAAC;AAC9B;AACA,EAAA,IAAMmE,YAAY,GAAGnE,MAAM,CAAmB,IAAI,CAAC;;AAEnD;AACA,EAAA,IAAMoE,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AAAA,IAAA,IAAAC,qBAAA;AAC7B,IAAA,CAAAA,qBAAA,GAAAF,YAAY,CAACnD,OAAO,MAAA,IAAA,IAAAqD,qBAAA,KAAA,MAAA,IAApBA,qBAAA,CAAsBC,KAAK,EAAE;EAC/B,CAAC;AAED,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIhB,KAAc,EAAK;IACxCS,aAAa,CAACT,KAAK,CAAC;AACpBC,IAAAA,QAAQ,aAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAGD,KAAK,CAAC;EACnB,CAAC;;AAED;AACA,EAAA,IAAMiB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAUC,CAAC,EAAA;AAAR,IAAA,OAAA,IAAAC,OAAA,CAAA,UAAAC,OAAA,EAAAC,MAAA,EAAA;AAAA,MAAA,IAAAC,eAAA,EACjBC,IAA0B,EASxBC,QAAsC,EACtCC,aAAwC,EAAAC,kBAAA,EAGtCC,QAAiE,EACjEC,cAAwC,EACxCC,UAG6B;AAlBjCN,MAAAA,IAAI,GAAA,CAAAD,eAAA,GAAGJ,CAAC,CAACY,MAAM,CAACC,KAAK,MAAA,IAAA,IAAAT,eAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,eAAA,CAAiB,CAAC,CAAC;AAChC,MAAA,IAAI,CAACC,IAAI,EAAE,OAAAH,OAAA,EAAA;;AAEX;MACA,IAAI,CAACG,IAAI,CAACS,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACnCC,KAAK,CAAC,uBAAuB,CAAC;AAC9B,QAAA,OAAAd,OAAA,EAAA;AACF,MAAA;MA9DJ,IAAIe,WAAA,eAAA;QAAJ,IAAI;AAAA,UAAA,OAAAf,OAAA,EAAA;QAAI,CAAC,CAAC,OAAAgB,QAAA,EAAU;UAAC,OAAOf,MAAA,CAAAe,QAAK,CAAC;AAAA,QAAA;MAAC,CAAxB;AAAX,MAAA,IAAIC,YAAA,GAAA,UA8ESjD,KAAK,EAAE;QA9EpB,IAAI;AA+EEkD,UAAAA,OAAO,CAAClD,KAAK,CAAC,CAAAA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAG,EAAE,CAAC,KAAI,QAAQ,CAAC;UA/E5C,OAAO+C,WAAA,EAAI;QAAH,CAAC,CAAC,OAAAC,QAAA,EAAU;UAAC,OAAOf,MAAA,CAAAe,QAAK,CAAC;AAAA,QAAA;MAgF9B,CAhFO;MA+DP,IAAI;AACe,QAAA,OAAAjB,OAAA,CAAAoB,OAAA,CAAMrC,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAGqB,IAAI,CAAC,CAAA,CAA3BvC,IAA2B,WAAAwD,QAAA,EAAA;UAhElD,IAAI;AAgEQhB,YAAAA,QAAQ,GAAGgB,QAA2B;YACtCf,aAAa,GAAA,oBAAA,CAAAgB,MAAA,CAAcjB,QAAQ,EAAA,KAAA,CAAA;AACzC;YACA,IAAIb,SAAS,CAAClD,OAAO,EAAE;AACfkE,cAAAA,QAAQ,GAAA,CAAAD,kBAAA,GAAGf,SAAS,CAAClD,OAAO,MAAA,IAAA,IAAAiE,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,kBAAA,CAAoB,UAAU,CAAC;cAC1CE,cAAc,GAAGD,QAAQ,CAACe,cAAc;cACxCb,UAAU,GACd,CAAArB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEmC,KAAK,CAAC,CAAC,EAAEf,cAAc,CAAC,IACpCH,aAAa,IACbjB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEmC,KAAK,CAACf,cAAc,CAAC,CAAA;cACnCZ,aAAa,CAACa,UAAU,CAAC;AACzB;AACAX,cAAAA,CAAC,CAACY,MAAM,CAAC9B,KAAK,GAAG,EAAE;AACrB,YAAA;YA7EN,OAAOmC,WAAA,EAAI;UAAH,CAAC,CAAC,OAAAC,QAAA,EAAU;YAAC,OAAOC,YAAA,CAAAD,QAAK,CAAC;AAAA,UAAA;AAAC,QAAA,CAAA,EAAAC,YAAA,CAAA;MA8E/B,CAAC,CAAC,OAAOjD,KAAK,EAAE;AAAAiD,QAAAA,YAAA,CAAPjD,KAAK;AAEd,MAAA;AAAC,IAAA,CAAA,CAAA;AACF,EAAA,CAAA;AAED,EAAA,IAAMwD,kBAAkB,GAAG;AACzBC,IAAAA,IAAI,EAAE,aAAa;AACnBC,IAAAA,UAAU,EAAE,aAAa;AACzB/D,IAAAA,MAAM,EAAE,SAARA,MAAMA,GAAQ;MACZ,oBACEa,GAAA,CAACmD,MAAM,EAAA;AAELf,QAAAA,IAAI,EAAC,SAAS;AACdgB,QAAAA,IAAI,EAAC,OAAO;AACZlF,QAAAA,KAAK,EAAE;AAAEmF,UAAAA,QAAQ,EAAE;SAAK;AACxBC,QAAAA,OAAO,EAAErC,gBAAiB;AAAA1E,QAAAA,QAAA,EAC3B;AAED,OAAA,EAPM,aAOE,CAAC;AAEb,IAAA;GACD;AACD;AACA,EAAA,IAAMgH,cAAc,GAAG;AACrBN,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,UAAU,EAAE,SAAS;AACrB/D,IAAAA,MAAM,EAAE,SAARA,MAAMA,GAAQ;MACZ,oBACEa,GAAA,CAACmD,MAAM,EAAA;AACLf,QAAAA,IAAI,EAAC,SAAS;AAEdgB,QAAAA,IAAI,EAAC,OAAO;AACZlF,QAAAA,KAAK,EAAE;AAAEmF,UAAAA,QAAQ,EAAE;SAAK;AACxBC,QAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;UACbE,aAAa,CAAC,mDAAmD,CAAC;QACpE,CAAE;AAAAjH,QAAAA,QAAA,EACH;AAED,OAAA,EARM,SAQE,CAAC;AAEb,IAAA;GACD;AAED,EAAA,IAAMkH,QAAQ,GAAGvE,MAAM,CAAC,sBAAsB,CAAC,CAACwE,OAAO;AACvD,EAAA,IAAMC,QAAQ,GAAGzE,MAAM,CAAC,sBAAsB,CAAC,CAACyE,QAAQ;EAExD,IAAIC,aAAoB,GAAG,EAAE;AAE7B,EAAA,IAAItD,aAAa,IAAI,CAACC,QAAQ,EAAE;AAC9BqD,IAAAA,aAAa,GAAG,CACdZ,kBAAkB,EAClBW,QAAQ,CAACE,OAAO,EAChBN,cAAc,EACdI,QAAQ,CAACE,OAAO,EAChBF,QAAQ,CAACG,UAAU,CACpB;AACH,EAAA,CAAC,MAAM;IACLF,aAAa,GAAG,CAACL,cAAc,EAAEI,QAAQ,CAACE,OAAO,EAAEF,QAAQ,CAACG,UAAU,CAAC;AACzE,EAAA;AAEA,EAAA,IAAMC,OAAO,GAAGxD,QAAQ,GAAG,SAAS,GAAG,MAAM;AAE7C,EAAA,IAAMyD,aAAa,GAAGxD,UAAU,GAAG,MAAM,GAAG,OAAO;AAEnD,EAAA,IAAMyD,UAAU,GAAGC,OAAO,CAAC,YAAM;IAC/B,IAAI3D,QAAQ,EAAE,OAAO,EAAE;AACvB,IAAA,OAAOR,SAAS;AAClB,EAAA,CAAC,EAAE,CAACQ,QAAQ,CAAC,CAAC;AAEd,EAAA,IAAM9B,EAAE,GAAGyF,OAAO,CAAC,YAAM;IACvB,OAAOpH,OAAO,EAAE;EAClB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMqH,gBAAgB,GAAGC,OAAO,CAAC,YAAA;IAAA,OAC/BpG,QAAQ,CAACqG,aAAa,CAAA,GAAA,CAAAxB,MAAA,CAAKpE,EAAE,oBAAiB,CAAC;AAAA,EAAA,CACjD,CAAC;AAED,EAAA,IAAM6F,UAAU,GAAGJ,OAAO,CAAC,YAAM;IAC/B,OAAO3D,QAAQ,IAAIO,oBAAoB;AACzC,EAAA,CAAC,EAAE,CAACP,QAAQ,EAAEO,oBAAoB,CAAC,CAAC;AAEpC,EAAA,IAAMyD,QAAQ,GAAGL,OAAO,CAAC,YAAM;AAC7B,IAAA,IAAII,UAAU,EAAE;AAAA,MAAA,IAAAE,qBAAA;AACd,MAAA,OAAO,EAAAA,qBAAA,GAACL,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAE7F,MAAM,cAAAkG,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,CAAC,IAAI,EAAE;AAC7C,IAAA;AACA,IAAA,OAAOlG,MAAM;AACf,EAAA,CAAC,EAAE,CAACgG,UAAU,EAAEH,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAE7F,MAAM,EAAEA,MAAM,CAAC,CAAC;AAElD,EAAA,IAAMmG,gBAAgB,GAAGP,OAAO,CAAC,YAAM;IACrC,IAAII,UAAU,EAAE,OAAO,KAAK;IAC5B,OAAO3D,SAAS,CAAC+D,cAAc;EACjC,CAAC,EAAE,CAACJ,UAAU,EAAE3D,SAAS,CAAC+D,cAAc,CAAC,CAAC;AAC1C,EAAA,oBACEC,IAAA,CAAA,KAAA,EAAA;AACEzG,IAAAA,KAAK,EAAEA,KAAM;AACb1B,IAAAA,SAAS,EAAEoI,UAAA,CAAW,mBAAmB,EAAEpI,SAAS,CAAE;AACtDiC,IAAAA,EAAE,EAAEA,EAAG;AAAAlC,IAAAA,QAAA,gBAEPyD,GAAA,CAACyD,QAAQ,EAAAoB,cAAA,CAAAA,cAAA,CAAA;AACPC,MAAAA,eAAe,EAAE;AAAK,KAAA,EAClBnE,SAAS,CAAA,EAAA,EAAA,EAAA;AACbzC,MAAAA,KAAK,EAAE;AAAE6G,QAAAA,SAAS,EAAErE,UAAU,GAAG,MAAM,GAAGX;OAAY;AACtDzB,MAAAA,MAAM,EAAEiG,QAAS;AACjBS,MAAAA,GAAG,EAAEjE,SAAU;AACfX,MAAAA,KAAK,EAAEQ,UAAW;AAClBmD,MAAAA,OAAO,EAAEA,OAAQ;AACjB1D,MAAAA,QAAQ,EAAEe,aAAc;AACxBsD,MAAAA,cAAc,EAAED,gBAAiB;AACjC,MAAA,iBAAA,EAAiBT,aAAc;AAC/BJ,MAAAA,aAAa,EAAEA,aAAc;AAC7BD,MAAAA,QAAQ,EAAEM,UAAW;AACrBgB,MAAAA,cAAc,EAAE;AACdC,QAAAA,UAAU,EAAE;AACVzH,UAAAA,IAAI,EAAErB;AACR;AACF;KAAE,CACH,CAAC,eAEF4D,GAAA,CAAA,OAAA,EAAA;AACEoC,MAAAA,IAAI,EAAC,MAAM;AACX4C,MAAAA,GAAG,EAAEhE,YAAa;MAClBmE,MAAM,EAAC,SAAS;AAAC;AACjB9E,MAAAA,QAAQ,EAAEgB,gBAAiB;AAC3BnD,MAAAA,KAAK,EAAE;AAAEkH,QAAAA,OAAO,EAAE;AAAO;AAAE,KAC5B,CAAC;AAAA,GACC,CAAC;AAEV,CAAC;;ACtMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,cAAc,GAAG,SAAjBA,cAAcA,CAAI5I,KAA0B,EAAK;AAC5D,EAAA,IAAAM,SAAA,GAAoCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5CuI,IAAAA,UAAU,GAAArI,UAAA,CAAA,CAAA,CAAA;AAAEsI,IAAAA,aAAa,GAAAtI,UAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAuI,UAAA,GAAgCxI,QAAQ,CAAgB,IAAI,CAAC;IAAAyI,UAAA,GAAAvI,cAAA,CAAAsI,UAAA,EAAA,CAAA,CAAA;AAAtDE,IAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA;AAE5B7H,EAAAA,SAAS,CAAC,YAAM;AACd2D,IAAAA,OAAO,CAACqE,GAAG,CAAC,CACVC,WAAW,CAAC;AACVC,MAAAA,UAAU,EAAE,CACV,gEAAgE,EAChE,gEAAgE,CACjE;AACDC,MAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;QACb,IAAMC,QAAQ,GAAG9G,MAAM,CAAC,sBAAsB,CAAC,IAAIA,MAAM,CAAC,SAAS,CAAC;AACpE,QAAA,OAAO8G,QAAQ;MACjB,CAAC;AACDC,MAAAA,UAAU,EAAE;KACb,CAAC,EACFC,UAAU,CAAC;MACTC,SAAS,EAAE,CACT,iEAAiE;AAErE,KAAC,CAAC,CACH,CAAC,CACC/G,IAAI,CAAC,YAAM;MACVmG,aAAa,CAAC,IAAI,CAAC;AACrB,IAAA,CAAC,CAAC,CACDhG,KAAK,CAAC,UAACC,KAAK,EAAK;AAChBC,MAAAA,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACpB+F,aAAa,CAAC,IAAI,CAAC;MACnBI,WAAW,CAAC,CAAAnG,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEkD,OAAO,KAAI,iBAAiB,CAAC;AAClD,IAAA,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAAC4C,UAAU,EAAE;IACf,oBACEtF,GAAA,CAACoG,IAAI,EAAA;AACHC,MAAAA,GAAG,eAAErG,GAAA,CAAA,KAAA,EAAA;AAAK9B,QAAAA,KAAK,EAAE;AAAEoI,UAAAA,SAAS,EAAE;SAAK;AAAA/J,QAAAA,QAAA,EAAC;AAAc,OAAK,CAAE;AACzD6G,MAAAA,IAAI,EAAC,OAAO;AAAA7G,MAAAA,QAAA,eAEZyD,GAAA,CAAA,KAAA,EAAA;AACE9B,QAAAA,KAAK,EAAE;AACLqI,UAAAA,OAAO,EAAE,EAAE;AACXC,UAAAA,UAAU,EAAE,qBAAqB;AACjCC,UAAAA,YAAY,EAAE;AAChB;OACD;AAAC,KACE,CAAC;AAEX,EAAA;AAEA,EAAA,IAAIf,QAAQ,EAAE;AACZ,IAAA,oBACEf,IAAA,CAAA,KAAA,EAAA;AAAKzG,MAAAA,KAAK,EAAE;AAAEwI,QAAAA,SAAS,EAAE,QAAQ;AAAEH,QAAAA,OAAO,EAAE,EAAE;AAAEC,QAAAA,UAAU,EAAE;OAAS;MAAAjK,QAAA,EAAA,cACnEyD,GAAA,CAAA2G,kBAAA,EAAA;AAAmBzI,QAAAA,KAAK,EAAE;AAAE0I,UAAAA,KAAK,EAAE,MAAM;AAAEvD,UAAAA,QAAQ,EAAE;AAAG;OAAI,CAAC,eAC7DrD,GAAA,CAAA,KAAA,EAAA;AAAK9B,QAAAA,KAAK,EAAE;AAAE0I,UAAAA,KAAK,EAAE,MAAM;AAAEN,UAAAA,SAAS,EAAE,EAAE;AAAEjD,UAAAA,QAAQ,EAAE;SAAK;AAAA9G,QAAAA,QAAA,EAAC;OAEvD,CAAC,eACNyD,GAAA,CAAA,KAAA,EAAA;AAAK9B,QAAAA,KAAK,EAAE;AAAE0I,UAAAA,KAAK,EAAE,SAAS;AAAEN,UAAAA,SAAS,EAAE,CAAC;AAAEjD,UAAAA,QAAQ,EAAE;SAAK;AAAA9G,QAAAA,QAAA,EAC1DmJ;AAAQ,OACN,CAAC;AAAA,KACH,CAAC;AAEV,EAAA;EAEA,oBAAO1F,GAAA,CAACG,aAAa,EAAA0E,cAAA,CAAA,EAAA,EAAKpI,KAAK,CAAG,CAAC;AACrC;;;;"}